我尝试将路径转发到特定网址,我的 websocket 请求必须转到该网址。它侦听端口 8180。我从尼科·凯撒(Nico Kaiser)那里找到了例子。
我的nginx配置现在如下所示:
location /sideview/frontend {
access_log off;
proxy_pass http://domain.de:8180;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support (nginx 1.4)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Path rewriting
rewrite /sideview/frontend/(.*) /$1 break;
proxy_redirect off;
}
当我尝试连接到 URL 时,错误:*2508595 no live upstreams while connecting to upstream, client: 87.79.66.136, server: domain.de, request: "GET /sideview/frontend/ws HTTP/1.1", upstream: "http://domain.de/ws", host: "domain.de"
正如日志告诉我的那样,请求也没有到达 websockets 服务器。
我必须改变什么才能做到正确?
首先,听起来 domain.de 在该端口上没有正确响应。如果这是托管两者的同一服务器,则可能需要将其更改为本地主机。
第二
proxy_set_header连接"升级";
应使用大写字母"U"
proxy_set_header连接"升级";
大写和小写 U 之间的这种区别在任何地方都没有记录,但有些服务器需要一个,有些服务器没有区分。