小编atx*_*atx的帖子

Socket.io 不适用于 nginx

我有一个运行良好的 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)

nginx node.js socket.io gunicorn pm2

3
推荐指数
1
解决办法
4230
查看次数

标签 统计

gunicorn ×1

nginx ×1

node.js ×1

pm2 ×1

socket.io ×1