У меня есть Flask веб-приложение, с использование Socket.IO (Flask-SocketIO).
Сейчас у меня настроена работа Flask через Gunicorn с NGINX. Это работает. Кроме запросов Socket.IO. Как его настроить?
Если я настраиваю Socket.IO через unix:myproject.sock, то будет громадная задержка. Я нашёл, что это делается с помощью специальной команды:
gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 --bind unix:app.sock -m 007
Но в таком случае, как мне оставить обычные запросы к Flask?
Мои конфиги:
/etc/nginx/sites-available/myproject
server {
listen 80;
server_name blabla.org www.blabla.org;
location / {
include proxy_params;
proxy_pass http://unix:/home/tensy/blend/myproject.sock;
}
location ~* \.io {
???
# Это не работает: proxy_pass http://unix:/home/tensy/blend/myproject.sock;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
/etc/systemd/system/myproject.service
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=tensy
Group=www-data
WorkingDirectory=/home/tensy/blend
Environment="PATH=/home/tensy/blend/flask/bin"
ExecStart=/home/tensy/blend/flask/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target