• Nginx as reverse proxy: 1% запросов падает по тайм-ауту (504). Что можно предпринять?

    @c0nst_float Автор вопроса
    Python Back-end developer
    Решением было: увеличение количества nginx воркеров и коннекшенов:
    user www-data;
    worker_processes 32;
    worker_priority -10;
    pid /run/nginx.pid;
    worker_rlimit_nofile 200000;
    
    events {
            worker_connections 4096;
            use epoll;
    }
    ...

    И самое главное: включение режима keep-alive для upstream-a:
    upstream partner_api {
                    server WW.XX.YY.ZZ;
                    
                    keepalive 512;
            }

    Так-же оказывается, что установив proxy_http_version 1.1; поддержка keep-alive соединения не включится. Нужно также установить proxy_set_header Connection "";

    Со всеми числами можно поиграть и добиться нужного результата.
    Раньше у нас отваливалось 5-6 запросов в секунду. Сейчас тоже отваливается, но гораздо реже: 1 запрос в 10-15 минут. Текущий результат пока что удовлетворяет. В будущем будем добиваться максимально возможных результатов.
    Ответ написан
    Комментировать