Я работаю над веб-сокетами в приложении angular. Я подключил его к python back-end через nginx. Я нахожу, что получаю 502 ошибки "Bad Gateway" примерно в 90% случаев. Я сделаю это:
- Загрузите страницу в браузере и подключите веб-сокет
- Python back-end отправляет данные на angular front-end
- Отключите веб-сокет
- Попытка повторно подключить веб-сокет <- 502 Ошибка Bad Gateway </li>
- Жесткая перезагрузка в Chrome
- Загрузить страницу в браузере и подключить веб-сокет <- Нет ошибки 502 </li>
Я не могу понять, почему это происходит. Я не могу сказать, почему я получаю ошибку 502. Также я не могу понять, почему выполнение перезагрузки решает проблему. Вещи, которые я пробовал:
- Увеличьте nginx уровень журнала для отладки. Тем не менее, журналы не содержат никакой полезной информации.
- Я не поддерживаю объекты веб-сокетов в состоянии. Я делаю это в случае, если что-то где-то кэшируется.
- Я всегда закрываю веб-сокет с кодом закрытия 1000
- Я вручную запускаю сервис python на сервере, чтобы я мог его посмотреть , Когда возникает ошибка 502. Служба не показывает ничего необычного.
- Установка nginx max_fails на 0. Установка fail_timeout на 0. Кажется, что ни одно из этих изменений не имеет никакого эффекта. (Я нашел это предложение в других ответах SO)
Что мне нужно искать, чтобы помочь мне решить эту проблему?
РЕДАКТИРОВАТЬ: Вот мой файл nginx conf.d :
server {
listen 80;
index index.html;
root /var/www/mysite;
location / {
access_log /var/log/nginx/mysite/ui.access.log;
error_log /var/log/nginx/mysite/ui.error.log;
try_files $uri $uri/ /index.html;
}
location /ws/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Host $proxy_host;
proxy_pass http://WEBSOCKET/;
access_log /var/log/nginx/mysite/ws_services.access.log;
error_log /var/log/nginx/mysite/ws_services.error.log;
proxy_read_timeout 300s;
}
}
upstream WEBSOCKET {
ip_hash;
server 127.0.0.1:8765;
}