Networking

具有相同配置的 Nginx 反向代理在 2 種情況下工作而不是在 1 種情況下工作(Vestacp)

  • July 13, 2014

我很少有帶有專用網路的 vps 機器。我在所有這些機器中都使用 nginx 將傳遞請求代理到第四台機器(10.129.xxx.xxx),它只監聽私有連接。

我只是從這個配置中更改了 server_name:s 但除此之外它們是相同的:

upstream panel { server 10.129.xxx.xxx:8000; }
server {
 listen      80;
 server_name *.example.com example.com;
 return 301 https://$host$request_uri;
}

server {
 listen      443;
 server_name *.example.com example.com;

 ssl on;
 ssl_certificate     /etc/private/ssl/server.crt;
 ssl_certificate_key /etc/private/ssl/server.key;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA;
 ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
 ssl_prefer_server_ciphers on;

 location / {
   proxy_pass  http://panel;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_set_header Host $http_host;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header X-Forwarded-Port $server_port;
   proxy_set_header X-Request-Start $msec;
 }
}

此設置適用於 2 台機器,但第三台僅給出 502 和 nginx 錯誤日誌:

[error] 31890#0: *27 connect() failed (111: Connection refused) while connecting to upstream, client: 123.456.70.80, server: *.example.com, request: "GET / HTTP/1.1", upstream: "http://10.129.xxx.xx:8000/error/50x.html", host: "example.com"

什麼 nginx 規則可能會導致這種情況?防火牆?我應該在哪裡尋找這個錯誤?有錯誤的伺服器安裝了vestacp-panel和apache(埠8080),而其他伺服器沒有。

您的 nginx 伺服器和後端伺服器之間存在網路問題。這可能是由於這兩者之間的防火牆或路由問題造成的。

引用自:https://serverfault.com/questions/612171