Я использую nginx в качестве обратного прокси-сервера, чтобы иметь возможность доступа к моему Django API, а также обслуживать статические файлы.Мой Django API использует gunicorn .
У меня есть конечная точка, позволяющая пользователю загрузить CSV-файл.Я следовал инструкциям здесь, Потоковая передача больших CSV-файлов: https://docs.djangoproject.com/en/2.2/howto/outputting-csv/
Вот конфигурация nginx:
upstream docker-api {
server api;
}
server {
listen 443 ssl;
server_name xxxx.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to//privkey.pem;
include /path/to/options-ssl-nginx.conf;
ssl_dhparam /path/to/ssl-dhparams.pem;
location /static {
autoindex on;
alias /static/;
}
location /uploads {
autoindex on;
alias /uploads/;
}
location / {
proxy_pass http://docker-api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Это команда, которую я использую для запуска моего gunicorn сервер:
gunicorn my_api.wsgi -b 0.0.0.0:80 --enable-stdio-inheritance -w 2 -t 180 -k gevent
И когда я пытаюсь загрузить файл, Gunicorn всегда блокирует мой запрос через 3 минуты.Он не должен превышать время ожидания ответа HTTP.