Django с Nginx и Cloudflare: "400 Bad Request" при перенаправлении

Я интегрирую иранский провайдер банковских шлюзов типа Stripe с моим приложением Django. Когда пользователь совершает успешную покупку, шлюз перенаправляет его обратно на наш сайт, используя предопределенный URL-адрес перенаправления, чтобы завершить процесс пополнения счета.

Однако некоторые пользователи сталкиваются с ошибкой "400 Bad Request" (как показано на скриншоте ниже), когда они перенаправляются обратно на наш сайт. В сообщении об ошибке говорится, что "Обычный HTTP-запрос был отправлен на HTTPS-порт". Вот моя конфигурация Nginx:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$server_name$request_uri;
}

server {
    listen 8443 default_server ssl http2;
    listen [::]:8443 ssl http2;

    server_name mydomain.com;

    ssl_certificate /etc/nginx/ssl/mydomain.com.cer;
    ssl_certificate_key /etc/nginx/ssl/mydomain.com.cer.key;

    access_log /project/logs/nginx/access.log;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options nosniff;
    add_header Referrer-Policy strict-origin-when-cross-origin;

    location / {
        try_files $uri @proxy_api;
    }

    location @proxy_api {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
        proxy_pass http://web:8000;
    }

    location /static/ {
        autoindex on;
        alias /project/app/staticfiles/;
    }

    location /logs {
        autoindex on;
        alias /project/logs;

        types {
             text/plain log;
        }
    }
}

Скриншот: Error

Вернуться на верх