В заголовке ответа NGINX отсутствует заголовок Access-Control-Allow-Origin, когда приложение uWSGI - Djago не работает
Наш проект использует типичную настройку со шлюзом приложений NGINX, контейнером приложений uWSGI и приложением Django. Django настроен с использованием промежуточного ПО cors и успешно обрабатывает запросы из кросс-доменов. Однако одна из наших конечных точек сохраняет большие файлы для загрузки, что может занять значительное время. Если это занимает слишком много времени, uWSGI завершает работу, а NGINX возвращает ответ, в котором отсутствует заголовок Access-Control-Allow-Origin. Мы увеличили значения uwsgi_connect_timeout и uwsgi_read_timeout в конфигурации NGINX, чтобы решить большинство проблем.
Поскольку Django обрабатывает cors и, следовательно, заголовок Access-Control-Allow-Origin, NGINX не имеет этих значений для возврата клиенту. Кто-нибудь знает, какие настройки uWSGI или NGINX мне нужны, чтобы получить правильные заголовки?
Упрощенная версия конфигурации нашего nginx:
upstream results_uwsgi {
server unix:///opt/app_manager/app_manager.sock;
}
server {
listen 80;
server_name \$hostname;
return 301 https://\$host\$request_uri/;
}
server {
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
server_name \$hostname;
charset utf-8;
stub_status on;
# adjust to taste
client_max_body_size 75M;
large_client_header_buffers 4 128k;
location / {
uwsgi_pass results_uwsgi;
include uwsgi_params;
}
location /api {
uwsgi_connect_timeout 10000s;
uwsgi_read_timeout 10000s;
sendfile on;
uwsgi_pass results_uwsgi;
include uwsgi_params;
}
}
Наша конфигурация uWSGI:
[uwsgi]
app_root = /opt/app_manager
# emperor = /etc/uwsgi/vassals
chdir = %(app_root)
module = api.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe)
socket = /opt/app_manager/app_manager.sock
chmod-socket = 666
buffer-size = 131072
auto_procname = true
# clear environment on exit
vacuum = true
# logging
logdate = True
logto = /var/log/app_manager.log
log-maxsize = 10000000
Заранее спасибо.
Tron.
Пробовал добавить add_header 'Access-Control-Allow-Origin' $http_origin always;
в раздел /api {}. Что вызывает ошибку сервера.