我有一个运行在NGINX后面的Flask应用程序,正在使用Gunicorn进行部署。部署后,一切正常,可以打我的服务器IP,看到应用程序运行没有问题,但是,当我执行使用socketio的操作时,该操作不会传递给后端,我相信这是一个问题我在NGINX上的配置。我的conf.d文件具有以下内容
server {
listen 80;
server_name MY_SERVER_IP;
location / {
proxy_pass http://127.0.0.1:8000;
}
location /socket.io {
include proxy_params;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:8000/socket.io;
}
}
我使用]部署应用程序>
gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
在我的app.py中,我正在使用socketio服务器运行
socketio.run(app, host='127.0.0.1', port=80, debug=True)
也在控制台中看到此内容...
socket.io.min.js:2 GET http://127.0.0.1:8000/socket.io/?EIO=3&transport=polling&t=MuA1z9K net::ERR_CONNECTION_REFUSED
一切都在本地工作。请记住,我对使用socketio的Flask部署还很陌生。
我有一个运行在NGINX后面的Flask应用程序,正在使用Gunicorn进行部署。部署后,一切正常,我可以按我的服务器IP并查看应用程序运行没有问题,...
您的服务器在端口8000上运行,因此您的proxy_pass语句应转到该端口,而不是5000:
我与socket.io的连接设置不正确。我应该有var socket = io();在我的js脚本中,而不是var socket = io.connect('127.0.0.1:8000');每documentation