Nginx 413 Request Entity Too Large, Docker, Django
Я получаю ошибку
413 Слишком большой объект запроса
когда я пытаюсь загрузить любой файл размером более 1.5MB.
Я видел различные ответы по этому вопросу, но ничего не подходит к моей ситуации:
мой nginx default.conf:
upstream django {
server store:27038;
}
server {
listen 27036;
location /static {
alias /vol/static;
}
location / {
proxy_pass http://django;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
мой nginx Dockerfile:
FROM nginxinc/nginx-unprivileged:1-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf
USER root
RUN mkdir -p /vol/static
RUN chmod 777 /vol/static
USER nginx
Я продолжаю видеть ответы, в которых говорится, что просто добавление чего-то вроде
server {
client_max_body_size 100M;
...
}
в Nginx должно решить проблему, но я продолжаю получать ошибку, когда пытаюсь поместить его в свой файл conf, поэтому я не совсем уверен, куда этот код должен пойти. Если у кого-нибудь есть ответ на этот вопрос, буду очень признателен
Как ни забавно, похоже, что в моем dockerfile была какая-то проблема с кэшированием, поэтому изменения не вступили в силу должным образом, что и стало причиной того, что решение не работает:
upstream django {
server store:27038;
}
server {
client_max_body_size 100M;
listen 27036;
location /static {
alias /vol/static;
}
location / {
proxy_pass http://django;
proxy_set_header X-Forwarded-For $
proxy_set_header Host $host;
proxy_redirect off;
}
}
Это помогло мне. Просто добавьте client_max_body_size 100M
и восстановите образ с нуля.