【发布时间】:2012-03-04 14:45:23
【问题描述】:
我正在使用 Express.js 创建一个服务器,我可以使用 Web 套接字连接到该服务器。
尽管它最终似乎可以工作(即连接并将事件传递给客户端),但我最初在 Chrome 的控制台中收到错误:
意外响应代码:502
在后端,socket.io 只记录warn - websocket connection invalid。
但是,nginx 会记录以下内容:
2012/02/12 23:30:03 [错误] 25061#0: *81 上游过早关闭 从上游读取响应标头时连接,客户端: 71.122.117.15,服务器:www.example.com,请求:“GET /socket.io/1/websocket/1378920683898138448 HTTP/1.1”,上游: "http://127.0.0.1:8090/socket.io/1/websocket/1378920683898138448", 主机:“www.example.com”
注意:我正在运行 nginx 开发:nginx version: nginx/1.1.14,所以它应该支持 HTTP/1.1。
还要注意,如果我只使用没有 nginx 的 node.js 服务器,它可以在没有任何警告的情况下工作。
最后,这是我的 nginx 配置文件:
server {
listen 0.0.0.0:80;
server_name www.example.com;
access_log /var/log/nginx/example.com.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://node;
proxy_redirect off;
}
}
upstream node {
server 127.0.0.1:8090;
}
任何帮助将不胜感激。我尝试了question 中建议的修复方法,但也没有用。
【问题讨论】: