Linux 本地webapp和websocket的Nginx设置
以下是我的nginx配置Linux 本地webapp和websocket的Nginx设置,linux,tomcat,nginx,Linux,Tomcat,Nginx,以下是我的nginx配置 server { //PART-1 listen 80; server_name _; location / { proxy_pass http://127.0.0.1:8090; proxy_redirect off; proxy_pass_request_headers on; pro
server { //PART-1
listen 80;
server_name _;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_redirect off;
proxy_pass_request_headers on;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection Upgrade;
}
}
server { //PART-2
listen 80;
server_name service;
root /usr/local/tomcat7/webapps/service-snapshot;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/ServiceUI/;
}
}
配置的第一部分可以很好地用于WebSocket,我已经在使用它了。
配置的第二部分是针对运行在ApacheTomcat7.0.56上的webapp的,它不工作
配置有什么问题吗?假设两个部分中的服务器\u name
可能会导致问题!
任何建议 当在一个IP和端口上有多个服务时,工作正常,
server\u name
指令使用客户端/浏览器提交的主机头。在这种情况下,您不是提供标头,而是要求在同一服务器上指定一个位置(您不是要求http://\ucode>或http://service
但对于http://yourserver/services
从我在评论中看到的内容)
要使其正常工作,您必须通过location
s指定不同的服务,如下所示:
server {
listen 80;
server_name THIS_IS_WHERE_YOUR_DOMAIN_OR_MAYBE_LOCALHOST_GOES;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_redirect off;
proxy_pass_request_headers on;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection Upgrade;
}
location /Service {
root /usr/local/tomcat7/webapps/service-snapshot;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/ServiceUI/;
}
}
你说“不工作”到底是什么意思。。日志或显示中是否有任何错误消息?它连接到WebSocket,而不是webapp!没有日志!将此行添加到第二个服务器块:error\u log/var/log/nginx/webapp-error.log
,重新启动nginx,尝试浏览webapp站点并查看写入webapp-error.logI的内容。我可以在nginx访问日志中看到这一点GET/Service/HTTP/1.1“404
。但我确信服务正在运行!哦,我明白了…事情不是这样的。我会发布一个答案。。