我一直在关注这个教程 ,除了我的nginx设置,一切似乎都运行正常。 我的node.js
应用程序在端口1337上运行,varnish在端口80上运行,443上的stunnel和8080上的nginx。
当我指定端口https://example.com:1337
时,我可以正确地到达我的应用程序,但访问https://example.com
时得到的是502 Bad Gateway
错误。
这是我的nginx日志的输出:
2012/08/25 14:13:59 [error] 6049#0: *1 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "http://app_example/", host: "example.com" 2012/08/25 14:14:02 [error] 6049#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:1337/", host: "example.com"
这是我的那个域的nginxconfiguration文件:
upstream example.com { server 127.0.0.1:1337; } server { server_name example.com; listen 8080; location / { proxy_pass http://example.com; 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的静态文件和HTML文件的网站。 您正试图通过nginx代理nodejs / websockets。
那么为什么该网站说不要那样做呢? 主要是因为稳定版本的nginx不支持websockets。
Websockets是一个1.1规范,nginx只是1.0规范。 现在说..你可以像tcp_proxy为nginx编译,但只是代理与像指出的url清漆。 这并没有太大的意义
varnish-> nginx->节点
做就是了
清漆 – >节点