Nginx

在 nginx 的 proxy_pass 欄位中指定您的實際內部 IP 是否正確?

  • February 3, 2017

我現在要通過 nginx 在 Google Compute Engine 上部署我的 node.js 應用程序,但是在完成所有配置之後,我遇到了“502 Bad Gateway”錯誤。

然後,挖了這麼多小時,我終於發現裡面的proxy_pass欄位/etc/nginx/sites-available/server.conf應該是你在GCE的控制台中顯示的實際內部IP地址,而不是http://127.0.0.1. conf 文件如下(某些值僅用於說明目的):

server {
   listen 80;
   listen 443 ssl;
   server_name example.com;
   ssl_certificate        /etc/nginx/ssl/example.crt;
   ssl_certificate_key    /etc/nginx/ssl/example.key;

   location / {
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_pass http://10.102.24.152:8888;
   }
}

但是,我遵循的所有教程都將值設置proxy_passhttp://127.0.0.1。但就我而言,它根本不起作用。教程範例如下:

所以我現在想知道這是否是使伺服器正常工作的正確方法。或者這是否會導致一些容易在安全方面變得有價值的東西?或者也許127.0.0.1是正確的數字,我這邊還有其他問題?

是的,放入實例 IP 地址是合理的做法。

您應該注意不要使用公共 IP,因為您可能會收取頻寬費用。我不熟悉 GCE,但在 AWS 中,您有一個可在 Internet 上路由的外部 IP 和一個網路內的內部 IP。AWS 和 GCE 之間可能存在差異,有人可能會糾正我。

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