Задать вопрос

Почему я получаю 400 Bad Request на любой эндпоинт Django от фронтенда на хосте?

У меня есть фронт на React и бэк на Django + drf. У меня на компе все работает, все запросы проходят, но когда заливаю все на хост (бэк и фронт в разных контейнерах, nginx вне докера) начинается проблема: на любой из эндпоинтов django, с любого хоста (будь то запрос через curl внутри контейнера или из фронта или просто через Postman) я получаю 400 Bad Request. Почитал что может быть проблема в ALLOWED_HOSTS, поставил * - не помогло. Больше информации по этой проблеме я не находил. В чем может быть проблема?

Мои файлы и конфиги:
settings.py
ALLOWED_HOSTS = "*"
CORS_ALLOWED_ORIGINS = [
    'https://example.com',
    'https://www.example.com',
]


CSRF_TRUSTED_ORIGINS = [
    'https://example.com',
    'https://www.example.com',
]


sites-available/example.com
server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://$host$request_uri;  
}

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

    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

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

    location /admin {
        proxy_pass http://0.0.0.0:8000/admin;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /api {
        proxy_pass http://0.0.0.0:8000/api;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


запуск gunicorn в Dockerfile
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--timeout", "600", "config.wsgi:application", "--log-level", "debug"]


все порты открыты, на 80 только контейнеры.
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой 11 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы