Linux 本地webapp和websocket的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

以下是我的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;

                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
。但我确信服务正在运行!哦,我明白了…事情不是这样的。我会发布一个答案。。