@slavashock

Почему 502 bat gateway(nginx, websocket,flask)?

Добрый день.
Пытаюсь настроить nginx для webscoket.
Запущен сервер flask как демон с webserv.service создающий сокет:
webserv.service
[Unit]
Description=Gunicorn instance to serve api.xxxx.ru
After=network.target

[Service]
User=xxxx
Group=www-data
WorkingDirectory=/home/xxxx/flask/webserv
Environment="PATH=/home/xxxx/flask/webserv/bin"
ExecStart=/home/xxxx/flask/webserv/bin/gunicorn --workers 9 --bind unix:webserv.sock -m 007 main:>

[Install]
WantedBy=multi-user.target


Следующая команда корректно запускает сервер и он работает из вэба (файрвол у нас прокидывает 443 порт на 8080) gunicorn -w 9 -b 0.0.0.0:8080 main:app --certfile=server.crt --keyfile=server.key

server {
    listen 8080 ssl;
    server_name 10.1.11.25 0.0.0.0 api.xxxx.ru;
    ssl_certificate /home/xxxx/flask/webserv/server.crt;
    ssl_certificate_key /home/xxxx/flask/webserv/server.key;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/xxxx/flask/webserv/webserv.sock;
    }
}


В error log nginx вываливается ошибка:
2022/12/22 14:59:56 [crit] 102107#102107: *1 connect() to unix:/home/administrator/flask/webserv/webserv.sock:/", host: "api.xxxx.ru:43698"

Как починить? Прошу помочь.
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
У Вас несоответствие - проксируете на unix-сокет, а gunicorn слушает tcp-порт.
Либо проксируйте на tcp (что гораздо лучше), либо gunicorn настраивайте на unix-сокет (что не очень)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы