diff --git a/core/settings.py b/core/settings.py index abb55cb..7e62b0c 100644 --- a/core/settings.py +++ b/core/settings.py @@ -161,3 +161,13 @@ STATIC_ROOT = BASE_DIR / 'staticfiles' MEDIA_URL = 'media/' MEDIA_ROOT = BASE_DIR / 'media' + +# Доверяем прокси-серверу передавать заголовки +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') + +# Список доверенных источников для CSRF (укажи свой IP и порт) +CSRF_TRUSTED_ORIGINS = [ + "http://192.168.1.57:8085", + "https://prodman.tertelius.space", # Если будет SSL/HTTPS + "http://prodman.tertelius.space", # Если пока без SSL +] \ No newline at end of file diff --git a/nginx/default.conf b/nginx/default.conf index 2ef7ce9..d1e8a87 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -4,29 +4,36 @@ upstream django_app { server { listen 80; - server_name localhost; # Можешь заменить на свой IP или домен + # Добавляем конкретный домен и IP сервера + server_name prodman.tertelius.space 192.168.1.57 localhost; - # Максимальный размер загружаемого файла (важно для чертежей/моделей) + # Максимальный размер загружаемого файла client_max_body_size 100M; - # Основной прокси на Django + # Сжатие (Gzip) — ускорит загрузку интерфейса + gzip on; + gzip_types text/plain text/css application/json application/javascript text/xml; + location / { proxy_pass http://django_app; + + # Передаем оригинальный хост (важно для ALLOWED_HOSTS) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # КРИТИЧНО для CSRF защиты в Django proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect off; } - # Статические файлы (STATIC_ROOT в Django) location /static/ { alias /app/staticfiles/; expires 30d; add_header Cache-Control "public, no-transform"; } - # Медиа файлы (MEDIA_ROOT в Django) location /media/ { alias /app/media/; expires 30d;