504 Таймаут шлюза (Gunicorn-Django-Nginx) Проблема с Docker Compose

Есть один процесс бэкенда, на обработку которого уходит около 1-2 минут. Экран загрузки работает в течение 1 минуты и показывает 504 Gateway Timeout

Вот журнал в nginx.access.log

172.18.0.2 - - [16/Dec/2022:23:54:02 +0000] "POST /some_request HTTP/1.1" 499 0 "http://localhost/some_url" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"

Но из журнала отладки django я вижу, что POST-запрос все еще обрабатывается на бэкенде

docker-compose.yml таймаут установлен на 300, без него браузер вернет ошибку 502 (соединение преждевременно закрыто)

services:
  web:
    image: genetic_ark_web:2.0.0
    build: .
    command: bash -c "python manage.py collectstatic --noinput && gunicorn ga_core.wsgi:application --bind :8000 --timeout 300 --workers 2 --threads 4"

Это все параметры, которые я пробовал в nginx.conf, но все равно таймаут 504 возвращается после 60s

server {

    # port to serve the site
    listen 80;

    # optional server_name
    server_name untitled_name;
    ...

    # request timed out -- default 60
    client_body_timeout 300;
    client_header_timeout 300;

    # if client stop responding, free up memory -- default 60
    send_timeout 300;

    # server will close connection after this time -- default 75
    keepalive_timeout 300;

    location /url_pathway/ {
        proxy_pass          http://ga;

        # header
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    Host $host;

        proxy_redirect      off;

        proxy_connect_timeout 300s;
        proxy_send_timeout    300s;
        proxy_read_timeout    300s;
        send_timeout          300s;
        keepalive_timeout     300s;
        
        fastcgi_connect_timeout 300s;
        fastcgi_send_timeout 180s;
        fastcgi_read_timeout 180s;
        
        uwsgi_read_timeout 300s;
        uwsgi_connect_timeout 300s;

Есть идеи, какой параметр может контролировать таймаут?

Очевидно, не вызвана nginx-контейнером или web-контейнером. Исправлено путем изменения таймаута в nginx-proxy, который прерывается, вызывая ошибку 499 в журнале доступа nginx, в то время как веб-контейнер продолжает свой процесс бэкенда

Добавлено ниже в nginx.conf для nginx-container

proxy_read_timeout    300s;

Для nginx-proxy, proxy_read_timeout 300s; тоже добавляется в конфиг

Вернуться на верх