Как отредактировать 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с правильным значением для этого свойства - При запуске контейнера добавьте его как том, например.
-v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro
Лично я нашел этот способ довольно удобным, так как нет необходимости создавать собственный контейнер для изменения конфигов. я не связан с 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 для Копировать в выходной каталог установлено значение «Всегда» для этого файла и что действие сборки было «содержимое».

