У меня есть приложение Flask, работающее за NGINX, и я использую 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
Все работает локально. Пожалуйста, имейте в виду, я довольно новичок в развертывании Flask с socketio.