Иногда 502 Bad Gateway, Иногда 504 gateway timeout, иногда веб-сайт загружается успешно

У меня есть веб-сайт, размещенный на облачной платформе Google с использованием сервера NGINX. За час до этого он работал нормально, но внезапно произошла ошибка 502 плохого шлюза.

Сервер NGINX размещен в другом экземпляре, а основной проект - это другой экземпляр, а ниже представлена ​​конфигурация моего сервера:

server {
      listen 443 ssl;  
      server_name www.domain.com;
       ssl_certificate /path-to/fullchain.pem;
      ssl_certificate_key /path-to/privkey.pem;
     
      # REST API Redirect
      location /api {
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http:/internal-ip:3000;
      }
     
       # Server-side CMS Redirect
      location / {
              proxy_set_header X-Real-IP  $remote_addr;   
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http://internal-ip:4400;
       }
  }

при перезапуске экземпляра сервера nginx веб-сайт загружается успешно, но после трех или четырех обновлений он начинает выдавать Плохой шлюз, и после этого каждый раз, когда я открываю его, он выдает ошибку неверного шлюза. Иногда автоматически перезагружается хорошо, но снова падает.

Пытался узнать журнал ошибок сервера nginx, и следующий результат журнала ошибок:

Иногда регистрируется эта популярная проблема:  введите описание изображения здесь

а иногда это:  введите описание изображения здесь

Что касается первой проблемы, я попробовал несколько рекомендаций, которые увеличивают время отправки и чтения прокси до некоторого более высокого значения, как предлагается здесь в конфигурации сервера. а также показано на изображении следующим образом:

введите описание изображения здесь

Кроме того, внутренний код работает нормально, потому что я могу получить доступ к развернутым серверным службам локально во время разработки, но размещенный веб-сайт не может получить доступ к какой-либо серверной службе.

Но ничего не помогло, и, к сожалению, мой сайт не работает. Пожалуйста, предложите любое решение.


person Nandan Pandey    schedule 09.02.2021    source источник
comment
Какой трафик у вашего сайта? Вы запускаете nginx на виртуальной машине Compute Engine? Где ваш бэкэнд-код по сравнению с nginx - вы называете его внутренним IP-адресом - это еще один вычислительный движок?   -  person Maciej Perliński    schedule 09.02.2021
comment
Да, я запускаю nginx на виртуальной машине Compute Engine на другом экземпляре, а серверная часть находится на другом экземпляре виртуальной машины вычислений, внутренний IP-адрес которого указан в файле конфигурации сервера nginx.   -  person Nandan Pandey    schedule 10.02.2021


Ответы (1)


По умолчанию nginx имеет 1024 рабочих соединения, вы можете изменить его с помощью

events {
  worker_connections  4096; 
}

Также вы можете попытаться увеличить количество воркеров, поскольку worker * worker_connections предоставляет вам количество соединений, с которыми вы можете справиться. Все это связано с тем, что ваш сайт получает трафик, а у вас просто заканчиваются соединения.

person Maciej Perliński    schedule 10.02.2021