Я использую сервер gunicorn на http://ip:8000. У меня есть сервер nginx на той же машине, который прослушивает http://ip:8080.
Когда я получаю доступ к http://ip:8000 (gunicorn)напрямую, не заходя через nginx, я не получаю никакой ошибки.Мое веб-приложение работает нормально.
Но когда я открываю http://ip:8080 (nginx), открывается первая страница входа в мое приложение.Но однажды я дам имя пользователя и пароль.Он вызывает ошибку CORS:
Access to XMLHttpRequest at 'http://ip:8000/login' from origin 'http://ip:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Когда я добавляю следующий код в код своей колбы, он не выдает ошибку CORS, но теперь возникает новая проблема.Как только я ввожу имя пользователя и пароль, он позволяет мне войти в систему, а затем перенаправляет меня обратно на страницу входа, а URL-адрес в адресной строке меняется на "http://ip:8000/login", который является адресом сервера оружейного оружия.
from flask_cors import CORS
CORS(app)
Мой файл nginx conf выглядит так:
server{
listen 8080;
server_name ip;
root /path/to/root;
access_log /path/to/access.log;
error_log /path/to/error.log;
location /{
proxy_pass http://ip:8000;
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Может кто-нибудь помочь мне решить эту проблему?