Как я могу исправить эту ошибку NGINX 502 Bad Gateway? - PullRequest
0 голосов
/ 17 апреля 2020

Я работаю над веб-сокетами в приложении angular. Я подключил его к python back-end через nginx. Я нахожу, что получаю 502 ошибки "Bad Gateway" примерно в 90% случаев. Я сделаю это:

  1. Загрузите страницу в браузере и подключите веб-сокет
  2. Python back-end отправляет данные на angular front-end
  3. Отключите веб-сокет
  4. Попытка повторно подключить веб-сокет <- 502 Ошибка Bad Gateway </li>
  5. Жесткая перезагрузка в Chrome
  6. Загрузить страницу в браузере и подключить веб-сокет <- Нет ошибки 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;
}
...