Nginx Timeouts получает код состояния 502 при использовании Gunicorn

В настоящее время у меня возникла проблема. Мое приложение Django выдает таймаут, т.е. 502, когда я помещаю его за прокси, например, nginx. Я пытался увеличить таймауты, но все равно ничего не изменилось, любая помощь будет высоко оценена. В качестве рабочего сервера я использую gunicorn. Любая помощь будет высоко оценена.

  1. Докер-композитный файл
version: '2'

services:
 # Nginx server
 nginx:
   # Build context
   build: ./nginx
  
   # Mapping machine and container ports
   ports:
     - 8094:443
    
   # Storage volumes
   volumes:
     - static_volume:/home/app/static
     - media_volume:/home/app/media
     - ./ssl:/ssl
   depends_on:
     - web

   networks:
     - app_network

   restart: "on-failure"

 web:
   container_name: django_app
   build: .
   command: sh -c "gunicorn ticket_resolution.wsgi:application --bind 0.0.0.0:8000 --keyfile=/ssl/my.key --certfile=/ssl/my.crt --timeout 200 --log-level debug --workers 4"
   volumes:
     - .:/code
     - ./ssl:/ssl   # Mounting the directory containing SSL certificates
     - static_volume:/home/app/static
     - media_volume:/home/app/media
   env_file:
     - .env
   depends_on:
     - db
     - redis
   networks:
     - app_network
   restart: "on-failure"

 redis:
   container_name: redis
   image: redis:latest
   ports:
     - "6379:6379"
   networks:
     - app_network

 db:
   container_name: db
   image: postgres:latest
   volumes:
     - postgres_data:/var/lib/postgresql/data/
   env_file:
     - .env
   networks:
     - app_network

networks:
 app_network:
   driver: bridge

volumes:
 postgres_data:
 static_volume:
 media_volume:

  1. Nginx config
upstream django_app {
    server web:8000;
}

server {
    listen 443 ssl;

    ssl_certificate /ssl/my.crt;
    ssl_certificate_key /ssl/my.key;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location /static/ {
        alias /home/app/static/;
    }

    location /media/ {
        alias /home/app/media/;
    }

    location / {
        proxy_pass https://django_app;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Proto https;

        # Add the X-CSRFToken header
        proxy_set_header X-CSRFToken $http_csrf_token;

        proxy_set_header Referer $http_referer;
    }
}
Вернуться на верх