我应该如何将nginx配置为在tcp服务器前面作为反向代理websocket服务器运行



我有一个tcp服务器在127.0.0.1:1905上运行

我配置了像这个一样的nginx

http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server http://127.0.0.1:1906;
}
server {
listen 8020;
location / {
proxy_pass http://127.0.0.1:1905;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}

我试着用打开一个插座

npm install -g wscat
wscat --connect ws://127.0.0.1:1906

我得到

error: connect ECONNREFUSED 127.0.0.1:1906

我在这里做错了什么?我是nginx和web套接字的新手,所以我不清楚发生了什么,也不知道问题可能出在哪里。

上游配置看起来有故障,你能试试下面的吗

upstream websocket {
server http://127.0.0.1:1906;
}
server {
listen 8020;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /webserver {
proxy_pass http://127.0.0.1:1905;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}

如果您还需要配置另一台服务器,则可以为/webserver配置另一个上游或其他位置。因此/将是您的套接字服务器,/webserver则是另一个服务器(普通http服务器(

最新更新