Nginx设置本地webapp和websocket

时间:2014-10-07 17:51:08

标签: 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;

                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/;
                }
        }

配置的第一部分适用于我已经使用的websockets。 配置的第二部分是针对在Apache tomcat 7.0.56上运行的webapp,它不起作用。

配置有问题吗?假设两个部分中server_name可能导致问题! 任何建议!

1 个答案:

答案 0 :(得分:1)

虽然在一个IP和端口上有多个服务工作正常,但server_name指令正在使用客户端/浏览器提交的HOST头。在这种情况下,您不会提供标题,而是要求在同一台服务器上找到特定位置(您不是要求http://_http://service,而是{{1}从我在评论中看到的)。

要使其有效,您必须通过http://yourserver/services指定不同的服务:

location