Разное

Nginx max upload size: Limit File Upload Size in NGINX —

18.01.2023

Как отредактировать nginx.conf, чтобы увеличить размер загружаемого файла

спросил

Изменено 2 года, 5 месяцев назад

Просмотрено 228 тысяч раз

Я хочу увеличить максимальный размер загружаемого файла .
Проведя небольшое исследование в Интернете, я обнаружил, что вам нужно отредактировать файл ‘nginx.conf’.
В настоящее время единственный способ получить доступ к этому файлу — пройти через Putty и ввести команду:

 vi /etc/nginx/nginx.conf
 

Это откроет файл, но у меня есть 2 вопроса:

  1. Как мне отредактировать этот файл?
  2. Я нашел в Интернете, что вы должны добавить следующую строку кода:

client_max_body_size 8M;

Куда мне поместить эту строку кода в nginx.

conf ?

  • нгинкс
  • 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 (или других свойств):

  1. Создайте собственный файл конфигурации, например. /etc/nginx/proxy.conf с правильным значением для этого свойства
  2. При запуске контейнера добавьте его как том, например.
    -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 ГБ загрузки файла

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 для Копировать в выходной каталог установлено значение «Всегда» для этого файла и что действие сборки было «содержимое».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *