Вопрос: как настроить проксирование nginx? - Академия Selectel

Вопрос: как настроить проксирование nginx?

Линия поддержки
Линия поддержки Ответы на вопросы пользователей
9 июля 2025

Изображение записи

Комментарий пользователя

Привет! Запустил Gunicorn над джангой — хочу поднять nginx и настроить редирект с домена на 80-й порт с выводом страницы exceptions/404.html, если пользователь перешел по несуществующему пути.

Александр Епихин

Ответ специалиста

Добрый день, Александр. Ваша задача сводится к нескольким этапам.

1. Проверьте, чтобы в настройках основного приложения проекта ваш домен был добавлен в список ALLOWED_HOSTS. Тут же можно указать представление для ошибки 404 — все как в тестовой среде. Ну и не забудьте перед выходом в продакшен указать DEBUG=False.

2. Если ваш Gunicorn уже перенаправляет запросы на Django, пропустите этот шаг. В противном случае — прочитайте эту инструкцию.

3. Наконец, установите nginx, перейдите в каталог с конфигурацией и откройте ее: 

  • 
Туров Владимир

    Туров Владимир

    Разработчик


      apt install nginx

      nano /etc/nginx/sites-available/testproject

4. Возьмите на шаблон эту конфигурацию и адаптируйте:


      server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

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

    client_max_body_size 100M;

    location / {
        proxy_pass http://localhost:8000;
        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;
    }

    error_page 404  /exceptions/404.html;
}

5. Проверьте конфигурацию nginx и перезапустите его:


      sudo nginx -t

      sudo systemctl reload nginx

Все должно работать. По схема пользователь обращается к домену, nginx проксирует запрос на Gunicorn, если пути не существует, Django возвращает страницу с исключением, а nginx показывает ее.