我有两个要从运行nginx的服务器上捕获并转发的子域:foo.acme.com,bar.acme.com
在我的nginx.conf文件中,我设置了2个服务器块:
server {
listen 80;
server_name foo.acme.com;
location / {
proxy_pass http://<my_ip_server_1>:80;
}
}
server {
listen 80;
server_name bar.acme.com;
location / {
proxy_pass http://<my_ip_server_2>:80;
}
}
我的2个子域指向相同的IP(一个在其上运行nginx的IP)。在这种配置下,两台服务器上都收到502 Bad Gateway错误。
502代码表示502 Bad Gateway。该服务器充当网关或代理,并从上游服务器接收到无效响应。
通常,这意味着后端服务器无法访问,这可能是它们的问题,而不是前端配置的问题。
在运行Nginx的计算机上,您应该测试可以搁置后端服务器。w3m
在该计算机上使用或其他HTTP客户端,请检查这些URL。他们加载您期望的内容吗?
http://<my_ip_server_1>:80
http://<my_ip_server_2>:80
如果没有,您可能需要进行一些更新以确保您的Nginx服务器可以访问后端服务器。
我应该补充一点,Host:
如果它们各自承载多个虚拟域,则可能需要发送标头来获取后端服务器以提供预期的内容。我喜欢使用GET
和发行版中的HEAD
工具libwww-perl
:
GET -H 'Host: bar.acme.com' http://http://<my_ip_server_1>:80
在托管Nginx的计算机上运行测试非常重要,因为从台式机运行该测试可能会产生不同的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句