我将 Nginx 用作接收请求的反向代理,然后执行 proxy_pass 以从运行在端口 8001 上的上游服务器获取实际的 Web 应用程序。
如果我访问 mywebsite.com 或执行 wget,我会在 60 秒后得到 504 Gateway Timeout ... 但是,如果我加载 mywebsite.com:8001,应用程序会按预期加载!
所以有些东西阻止了 Nginx 与上游服务器通信。
这一切都是在我的托管公司重置运行我的东西的机器之后开始的,在此之前没有任何问题。
这是我的虚拟主机服务器块:
server {
listen 80;
server_name mywebsite.com;
root /home/user/public_html/mywebsite.com/public;
access_log /home/user/public_html/mywebsite.com/log/access.log upstreamlog;
error_log /home/user/public_html/mywebsite.com/log/error.log;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我的 Nginx 错误日志的输出:
2014/06/27 13:10:58 [error] 31406#0: *1 upstream timed out (110: Connection timed out) while connecting to upstream, client: xxx.xx.xxx.xxx, server: mywebsite.com, request: "GET / HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:8001/", host: "mywebsite.com"