我像这样配置了Nginx(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; } }
我可以从家庭网络连接到Nginx,我看到了Nginx欢迎屏幕.
我也试过$sudo netstat -tanpl | grep Nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3264/Nginx: worker
我看到Nginx正在端口80上侦听.
但是当我尝试加载nomilkfor.me时,我得到“Chrome无法连接到nomilkfor.me”错误.
我究竟做错了什么?
编辑
我创建了一个非常简单的配置,这个也通过jetty服务于/usr/share / Nginx /中的index.html而不是应用程序:
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/; } }
编辑2
似乎Nginx正在使用另一个conf文件,而不是我想的.我在conf文件/etc/Nginx/sites-available/nomilkfor.me中添加了一个拼写错误(我删除了一个结束大括号)并运行了$Nginx -s reload并且编译时没有错误并在浏览器上显示了Nginx启动页面.某处可以有另一个conf文件吗?有没有办法找到Nginx使用的conf文件?
编辑3
根据Pazis comment我添加了root但不确定它应该在哪里或它应该是什么.我补充了一些建议.哪一个是正确的? /usr/share / Nginx / html是我拥有index.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/; } }
编辑4
这是我的码头配置文件.它位于/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>
>确保父Nginx目录中的Nginx.conf文件具有指向sites-available目录中的默认文件的include指令
>如果您需要代理其他服务(例如jetty),请使用下面共享的上游选项(在sites-available / default文件中).您可以参考服务器部分的上游.
一旦基本配置工作,您可以检查重写选项以及是否需要对主机名执行任何操作.希望能帮助到你.
Nginx.conf:
include /etc/Nginx/sites-enabled/*;
在sites-available目录(默认文件)中:
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 }
此外,可以检查Nginx conf文件(重新加载/重新启动之前),如下所示:
Nginx -t -c /etc/Nginx/Nginx.conf
更新:当你尝试使用Nginx配置时(或许使用netstat确认),你可以检查jetty是否在0.0.0.0:8080上运行.此外,当您通过浏览器访问URL时,是否可以从Nginx共享访问/错误日志?