nginx is running but not serving?
Can you try the following steps?
Make sure that the nginx.conf file in parent nginx directory has the include directive pointing to the default file in the sites-available directory
If you need to proxy to another service (e.g. jetty), use the upstream option (in the sites-available/default file) as shared below. You can refer to the upstream from the server section.
Once you have the basic config working, you can check the rewrite option and whether anything needs to be done for the hostname. Hope it helps.
Nginx.conf:
include /etc/nginx/sites-enabled/*;
In the sites-available directory (default file):
upstream nomilkforme {
server 0.0.0.0:8080; ##nomilkforme running on 0.0.0.0:8080;
keepalive 500;
}
server {
listen 80;
server_name localhost;
#access_log logs/host.access.log main;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://nomilkforme
}
Also, one can check the nginx conf file (before reloading/restarting) as follows:
nginx -t -c /etc/nginx/nginx.conf
Update: Can you check if jetty was running on 0.0.0.0:8080 when you tried the nginx config (perhaps confirm using netstat). Also, can you share the access/error logs from nginx when you access the URL via the browser?
Related videos on Youtube
Zeynel
Updated on September 18, 2022Comments
-
Zeynel almost 2 years
I've been trying to set up nginx as a proxy to jetty. I have one laptop running ubuntu server. Now I made jetty working at localhost:8080 and it serves the home page for the app at
http://192.168.1.5:8080/my-webapp-0.1.0-standalone/
.I configured nginx like this (I adapted it from this page):
server { listen 80; server_name nomilkfor.me; rewrite ^(.+?)/?$ http://nomilkfor.me$1 permanent; } server { listen 80; server_name www.nomilkfor.me; root /usr/share/nginx/html; location / { try_files $uri @my-webapp; } location @my-webapp { proxy_pass http://localhost:8080; } }
And I can connect to nginx from my home network and I see the nginx welcome screen.
I also tried
$ sudo netstat -tanpl|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3264/nginx: worker
and I see that nginx is listening at port 80.
But when I try to load nomilkfor.me I get "Chrome could not connect to nomilkfor.me" error.
What am I doing wrong?
EDIT
I created a very simple configuration, and this one too servers the
index.html
in/usr/share/nginx/
instead of the app through jetty:server { listen 80; server_name nomilkfor.me; # access_log /var/log/nginx/localhost.access.log; location / { proxy_pass http://127.0.0.1:8080; } location /html { root /usr/share/nginx/; } }
EDIT 2
It seems that nginx is using another conf file than I think. I added a typo to the conf file
/etc/nginx/sites-available/nomilkfor.me
(I removed a closing curly brace) and ran$ nginx -s reload
and it compiled without error and showed the nginx splash page on the browser. Can there be another conf file somewhere? Is there a way to find which conf file nginx is using?
EDIT 3
As per Pazis comment I added
root
but not sure exactly where it should be or what it should be. I added a few suggestions. Which one is correct?/usr/share/nginx/html
is where I have theindex.html
.server { listen 80; server_name nomilkfor.me; # root /home/z/jetty/jetty-dist/webapps root /usr/share/nginx/html; location / { proxy_pass http://127.0.0.1:8080; } #location /html { # root /usr/share/nginx/; } }
EDIT 4
This is my jetty conf file. It is in
/home/z/jetty/jetty-dist/jetty-distribution-9.1.0.v20131115/demo-base/webapps/my-webapp.xml
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Required minimal context configuration : --> <!-- + contextPath --> <!-- + war OR resourceBase --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <Set name="contextPath">/test</Set> <Set name="war"><Property name="jetty.webapps" default="."/>/my-webapp-0.1.0-standalone.war</Set>
-
Zeynel over 10 yearsThanks. I just checked and
include /etc/nginx/sites-enabled/*;
is included innginx.conf
in thehttp
block. Is this correct? -
Zeynel over 10 yearsI decided not to use jetty, I am now trying to make it work with this setup
https://groups.google.com/d/msg/clojure/lnGvHyRzX7w/N8eDnwJPXuAJ
but so far I am unable to start it with upstart. Any thoughts? -
ali haider over 10 yearsI'll update my answer with some more information.