Я использую Django с Docker, Nginx и Gunicorn. Я могу загрузить файлы до 1 МБ без проблем. Файлы размером от 1 МБ до 2,5 МБ дают [413 Слишком большой объект], а файлы размером более 2,5 МБ дают [502 Bad gateway].
Я пытался изменить своих рабочих-оружейников на gevent и увеличить время ожидания до 300 с, а также время ожидания для nginx. Я изменил FILE_UPLOAD_MAX_MEMORY_SIZE до 10 МБ.
В docker-compose у меня есть следующее:
command: bash -c "python manage.py collectstatic --no-input && python manage.py makemigrations && python manage.py migrate && gunicorn --timeout 300 --workers=3 --worker-class=gevent my_project.wsgi -b 0.0.0.0:8000"
В settings.py у меня есть это:
FILE_UPLOAD_MAX_MEMORY_SIZE = 9621440
Снова в docker-compose относительно nginx у меня есть это:
nginx:
image: nginx:latest
container_name: ng01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
- /static:/static
- ./src/media:/media
depends_on:
- web
restart: always
И мой nginx.conf:
upstream web {
ip_hash;
server web:8000;
}
server {
location /static/ {
autoindex on;
alias /static/;
}
location /media/ {
autoindex on;
alias /media/;
}
location / {
proxy_pass http://web/;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
}
listen 8000;
server_name mydomain;
}
Я ожидаю, что смогу загружать файлы PDF размером до 10 МБ или около того.