Время ожидания ошибки шлюза 504/502 ответов Nginx время от времени - PullRequest
1 голос
/ 10 апреля 2019

Я столкнулся с проблемой.

У меня есть 6 экспресс-приложений, работающих на Node, и я использую Nginx в качестве обратного прокси-сервера, все они работают без проблем в течение нескольких месяцев. Но недавно, когда я пытаюсь перейти на внутреннюю страницу какого-либо сайта, мне возвращалась ошибка 502 или 504 nginx.

Когда я пытаюсь запустить приложения на ngrok или локально, они работают правильно, но на рабочем сервере я получаю ошибку 504/502.

Журнал Nginx говорит 2019/04/10 16:38:12 [error] 1362#1362: *245 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 37.9.113.120, server: my.server, request: "GET /videos/videoId HTTP/1.1", upstream: "http://127.0.0.1:3000/videos/videoId", host: "www.my.host"

Я пытался увеличить время ожидания

proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;

Но это не помогло (

Вот конфигурация моего сервера.

server {
    listen x.x.x.x:443 http2;
    ssl on;

    server_name www.myservername.com;

...(ssl conf here)

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Я копаю в похожих темах StackOverflow, но не нашел решения. Самым странным в этом случае является то, что через некоторое время внутренняя страница становится доступной, но после того, как я загружаю тесты и отправляю около 100 запросов на рабочий сервер, она перестает работать примерно на полчаса

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 10 апреля 2019

Вы слушаете на 443, используя ssl, вы должны указать свои сертификаты / ключ:

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate     /var/lib/nginx/ssl/serverssl.crt;
    ssl_certificate_key /var/lib/nginx/ssl/serverssl.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header Host example.com;
        proxy_pass http://localhost:8192/;
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...