我已设置NGINX,以将请求example.com路由到服务前端的3000端口上的nodejs服务器,并将example.com/api路由到端口3001上的nodejs API服务器。
我尝试连接到端口3001上的套接字,例如:
const socket = openSocket('example.com/api');
但是控制台出现错误:
polling-xhr.js:265 POST https://example.com/socket.io/?
EIO=3&transport=polling&t=MWPLGiL 404 (Not Found)
socket.io似乎仍在尝试仅连接到example.com。 知道为什么/ api被忽略吗?由于该服务器已配置为处理套接字连接,因此我需要转到example.com/api。如果有人可以帮助我,将不胜感激。谢谢!
答案 0 :(得分:0)
我通过在NGINX配置中添加以下内容解决了该问题:
location ~ ^/(api|socket\.io) {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 900s;
}
很抱歉,您在不提出更多问题的情况下提出问题。希望这对其他人有所帮助。