Поставил Flask приложеие на хостинг через gunicorn и начались постоянные проблемы с цикличностью ошибки сокета. Хостинг абсолютно чистый, ниже список зависимостей, ошибок и частичные логи. Было испробовано очень много вариантов решения проблемы, замена версий, изменение конфигурации и др. варианты, но ничего по сути не помогает.
Nginx
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5';
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /socket.io/ {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_log /var/log/nginx/my.error.log;
access_log /var/log/nginx/my.access.log;
}
Установленные зависимости
alembic==1.13.3
bidict==0.23.1
blinker==1.8.2
certifi==2024.8.30
charset-normalizer==3.4.0
click==8.1.7
Flask==3.0.3
Flask-Cors==5.0.0
Flask-Login==0.6.3
Flask-Migrate==4.0.7
Flask-SocketIO==5.4.1
Flask-SQLAlchemy==3.1.1
future==1.0.0
greenlet==3.1.1
gunicorn==23.0.0
h11==0.14.0
idna==3.10
itsdangerous==2.2.0
Jinja2==3.1.4
Mako==1.3.6
MarkupSafe==3.0.2
mysql==0.0.3
mysqlclient==2.2.5
netifaces==0.10.6
packaging==24.1
PyMySQL==1.1.1
python-engineio==4.3.2
python-socketio==5.5.0
requests==2.32.3
setuptools==3.3
simple-websocket==1.1.0
socketio==0.2.1
SQLAlchemy==2.0.36
typing_extensions==4.12.2
urllib3==2.2.3
websocket-client==1.8.0
Werkzeug==3.0.6
wheel==0.44.0
wsproto==1.2.0
Ошибки
Соединение с wss://example.com/socket.io/?EIO=4&transport=websocket&sid= было неожиданно прервано. Возможно, также была прервана передача данных "The client is using an unsupported version of the Socket.IO or Engine.IO protocols" В соединении с wss://example.com/socket.io/?EIO=4&transport=websocket&sid=- отказано.
Логи
sudo journalctl -u myapp.service -f Client is gone, closing socket simple_websocket.errors.ConnectionClosed: Connection closed: 1005
sudo tail -f /var/log/nginx/error.log *1449 open socket #16 left in connection 3
[alert] 36162#36162: *300 open socket #22 left in connection 6
[alert] 36162#36162: aborting
[alert] 36164#36164: *1457 open socket #14 left in connection 3
[alert] 36164#36164: *1214 open socket #12 left in connection 5
[alert] 36164#36164: aborting