Django/NGINX - ошибка проверки CSRF в production на устройстве с поддержкой 3g

Мое приложение django прекрасно работает на других устройствах с 4G-подключением. При попытке зарегистрироваться или войти в систему на устройстве с поддержкой только 3G возникает ошибка CSRF verification failed. Есть идеи, почему так происходит?

Я также использую Cloudflare для настройки/управления сервером доменных имен. Спасибо.

Я уже просмотрел файл настроек (в основном следуя документации), но не хочу ломать то, что уже работает.

Вот мой конфиг NGINX:

upstream app_server {
   server unix:/tmp/gunicorn.sock fail_timeout=0;
}

server {
    listen 80;
    client_max_body_size 4G;

    # add here the ip address of your server
    # or a domain pointing to that ip (like example.com or www.example.com)
    server_name jovimifah.com www.jovimifah.com;

    keepalive_timeout 5;

    access_log /home/vickerdent/logs/nginx-access.log;
    error_log /home/vickerdent/logs/nginx-error.log;

    location /static/ {
        root /home/vickerdent/shop-central;
    }

    # checks for static file, if not found proxy to app
    location / {
        try_files $uri @proxy_to_app;
    }

    location @proxy_to_app {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}

Кроме того, CSRF_COOKIE_SECURE и SESSION_COOKIE_SECURE истинны.

Попробуйте добавить заголовок Referer в конфигурацию nginx:

server {

    ...

    location @proxy_to_app {
      proxy_set_header Referer $http_referer;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}
Вернуться на верх