我一直在尝试将nginx设置为jetty的代理.我有一台笔记本电脑运行ubuntu服务器.现在我让jetty工作在localhost:8080,它在http://192.168.1.5:8080/my-webapp-0.1.0-standalone/上提供应用程序的主页.
我像这样配置了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
>确保父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共享访问/错误日志?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。