我有一个运行良好的 django 网站,它由 gunicorn 和 nginx(作为代理服务器)提供服务,现在我想使用 socket.io 和 nodejs 在该网站中添加聊天机制。问题是,当我将 socketio 直接连接到 nodejs 服务器(它正在侦听端口 5000)时,聊天工作得非常好,但是当我尝试使用 nginx 将 socketio 请求代理到 nodejs 时,它不起作用。
这是我在 /sites-enabled/ 目录中的 nginx 文件
server {
listen 80;
server_name 127.0.0.1;
location = /favicon.ico {
access_log off;
log_not_found off;
}
location /static/ {
root /path/to/static;
}
location / {
include proxy_params;
proxy_pass http://unix:/path/to/file.sock;
}
location /socket.io/ {
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我正在使用 pm2 来管理 nodejs(如果有什么不同的话)。
编辑:
server.js:
var io …Run Code Online (Sandbox Code Playgroud)