以下是我的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
可能导致问题!
任何建议!
答案 0 :(得分:1)
虽然在一个IP和端口上有多个服务工作正常,但server_name
指令正在使用客户端/浏览器提交的HOST头。在这种情况下,您不会提供标题,而是要求在同一台服务器上找到特定位置(您不是要求http://_
或http://service
,而是{{1}从我在评论中看到的)。
要使其有效,您必须通过http://yourserver/services
指定不同的服务:
location