【发布时间】:2014-07-06 14:47:35
【问题描述】:
我有一个带有 websocket 的应用程序,它位于:
http://localhost:8888/something/ws
我想使用 nginx 作为代理,但是连接的转发不起作用。这是我的配置文件:
upstream backend {
server 127.0.0.1:8888;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://backend;
proxy_next_upstream error;
}
location /something/ws {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
有什么问题。我必须重写路径还是其他什么?
更新
Ubuntu 12.04。附带 nginx 1.1。在将 nginx 升级到 1.6 之前,我也必须删除 nginx-common 和 nginx-full,否则会重新安装 nginx 1.1 ...
【问题讨论】:
-
我相信你应该在Server Fault上问这个问题
-
我在 serverfault 上发现了类似的问题,但我不确定这是否是解决方案:serverfault.com/questions/482026/…
-
即使你使用的是 nginx,你还需要一个 websocket 客户端吗?您是否尝试过与 wscat 连接?我已成功按照此处的说明进行操作:nginx.com/blog/websocket-nginx 但他们仍在使用 wscat。
-
nginx版本是> 1.3.13吗?