Как отредактировать nginx.conf, чтобы увеличить размер загружаемого файла
спросил
Изменено 2 года, 5 месяцев назад
Просмотрено 228 тысяч раз
Я хочу увеличить максимальный размер загружаемого файла
.
Проведя небольшое исследование в Интернете, я обнаружил, что вам нужно отредактировать файл ‘nginx.conf’.
В настоящее время единственный способ получить доступ к этому файлу — пройти через Putty и ввести команду:
vi /etc/nginx/nginx.conf
Это откроет файл, но у меня есть 2 вопроса:
- Как мне отредактировать этот файл?
- Я нашел в Интернете, что вы должны добавить следующую строку кода:
client_max_body_size 8M;
Куда мне поместить эту строку кода в nginx.
?
- нгинкс
- nginx-config
Добавить
client_max_body_sizeТеперь, когда вы редактируете файл, вам нужно добавить строку в блок сервера, вот так;
сервер { client_max_body_size 8M; //другие строки... }
Если вы размещаете несколько сайтов, добавьте их в контекст http следующим образом;
http { client_max_body_size 8M; //другие строки... }
А также обновите upload_max_filesize
в вашем файле php.ini, чтобы вы могли загружать файлы одинакового размера.
Сохранение в Vi
Когда вы закончите, вам нужно сохранить, это можно сделать в vi, нажав клавишу esc
и набрав :wq
и вернувшись.
Перезапуск Nginx и PHP
Теперь нужно перезапустить nginx и php, чтобы перезагрузить конфиги. Это можно сделать с помощью следующих команд;
перезапуск службы sudo nginx Перезапуск службы sudo php5-fpm
Или как называется ваша служба php.
10
В случае, если кто-то использует прокси-сервер nginx в качестве контейнера докеров (например, jwilder/nginx-proxy), существует следующий способ настройки client_max_body_size
(или других свойств):
- Создайте собственный файл конфигурации, например.
/etc/nginx/proxy.conf
с правильным значением для этого свойства - При запуске контейнера добавьте его как том, например.
Лично я нашел этот способ довольно удобным, так как нет необходимости создавать собственный контейнер для изменения конфигов. я не связан с jwilder/nginx-proxy
, просто использовал его в своем проекте, и способ, описанный выше, мне помог. Надеюсь, это поможет кому-то еще.
1
Первый переход по пути php.ini
судо ви /etc/php/7.
2/fpm/php.ini
затем следующее изменение
upload_max_filesize = 999M post_max_size = 999M
затем ESC-->:wq
Теперь, наконец, вставьте эту команду,
sudo systemctl перезапустить php7.2-fpm.service
готово.
2
Вы можете увеличивать client_max_body_size и upload_max_filesize + post_max_size в течение всего дня. Без настройки тайм-аута HTTP он никогда не будет работать.
// Вам нужно настроить это, и, возможно, также на стороне PHP. client_body_timeout 2 мин // 1 ГБ загрузки файла
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
веб-служб amazon — увеличение размера загружаемого файла и устранение ошибки 413 для nginx в AWS Elastic Beanstalk для .
NET CoreЗадавать вопрос
спросил
Изменено 1 год, 8 месяцев назад
Просмотрено 2к раз
Я использую Elastic Beanstalk и ищу встроенное в код решение для увеличения максимального размера загрузки пользовательского файла. Прямо сейчас я получаю сообщение «413 Request Entity too big, если я попытаюсь» загрузить, скажем, изображение размером 10+ МБ. Nginx как прокси-сервер автоматически отклоняет запрос. Я использую Amazon Linux 2 в качестве ОС.
Решения SSH не будут работать для меня, так как экземпляры EC2 могут выйти из строя в любой момент и повторно развернуться без этого файла (хранилище временное), что плохо для моих пользователей.
Представленные здесь решения, похоже, также не работают для . NET Core из-за сочетания файлов конфигурации и файлов conf. В одном комментарии упоминалось, что я могу попробовать обновить веб-файл .config, что я и сделал, поместив его в /.platform/ с содержимым:
<конфигурация> <привязки> <базикхттпбиндинг> <привязка maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed"><режим безопасности="TransportCredentialOnly"> <транспортный clientCredentialType="Ntlm" /> безопасность> привязка> привязки> конфигурация>
Но это никак не влияет на лимит загрузки.
Я также пытался добавить скрипт . sh в .platform/hooks/postdeploy, надеясь изменить экземпляр после развертывания с помощью:
#!/bin/bash sudo echo "client_max_body_size 100M;" > /etc/nginx/conf.d/proxy.conf перезапуск службы sudo nginx
Но это приводит к сбою развертывания с «ошибкой формата exec», изменение шебанга на #!/bin/sh
или #!/usr/bin/bash
Кто-нибудь знает, что я могу сделать, чтобы увеличить ограничения на размер файла с помощью .NET Core или заставить Amazon Linux 2 принимать сценарии bash?
- amazon-web-services
- nginx
- .net-core
- amazon-elastic-beanstalk
Решено. Все, что мне нужно было сделать, это создать файл в /.platform/nginx/conf.d/proxy.conf с содержимым:
client_max_body_size 100M;
Я не знаю, почему это сработало только сейчас, но мне нужно было также убедиться, что в свойствах Visual Studio для Копировать в выходной каталог установлено значение «Всегда» для этого файла и что действие сборки было «содержимое».