Як редагувати nginx.conf, щоб збільшити розмір файлу


106

Я хочу збільшити те, maximum file sizeщо можна завантажити.
Провівши деякі дослідження в Інтернеті, я виявив, що вам потрібно відредагувати файл 'nginx.conf'.
Єдиний спосіб я можу отримати доступ до цього файлу - пройти через Putty і ввести команду:

vi /etc/nginx/nginx.conf

Це відкриє файл, але у мене зараз 2 питання:

  1. Як редагувати цей файл?
  2. Я виявив в Інтернеті, що вам потрібно додати такий рядок коду:

client_max_body_size 8M;

Де я б помістив цей рядок коду nginx.conf?

Відповіді:


200

Додайте client_max_body_size

Тепер, коли ви редагуєте файл, вам потрібно додати рядок до блоку сервера, як-от так;

server {
    client_max_body_size 8M;

    //other lines...
}

Якщо ви розміщуєте кілька сайтів, додайте його до контексту http так;

http {
    client_max_body_size 8M;

    //other lines...
}

А також оновіть upload_max_filesizeфайл у файлі php.ini, щоб ви могли завантажувати файли однакового розміру.

Збереження у Vi

Після того, як ви закінчите, вам потрібно зберегти, це можна зробити in vi за допомогою натискання escклавіші та введення :wqта повернення.

Перезапуск Nginx та PHP

Тепер вам потрібно перезапустити nginx та php, щоб перезавантажити конфігури. Це можна зробити за допомогою наступних команд;

sudo service nginx restart
sudo service php5-fpm restart

Або все, як називається ваша служба php.


8
Не може бути поганою ідеєю додати його до http {контексту, щоб усі сервери успадкували його. І переконайтеся, що ви налаштували своєupload_max_filesize в системі, php.iniщоб відповідати вашій налаштуванні Nginx. Якщо ви використовуєте Laravel за допомогою Homestead / Vagrant, цей файл знаходиться за адресою /etc/php5/fpm/php.ini.
damiani

Так, я забув згадати, що я використовую Laravel Homestead. Тому я відкрив '/etc/php5/fpm/php.ini' і знайшов рядок коду 'upload_max_filesize = 2M', тому я хочу змінити його так, щоб '2M' став '8M'. Після того, як я зроблю це редагування, я просто натискаю "Ctrl Z", щоб вийти з файлу, а потім запустіть "sudo service nging restart"?
Джефф П.

Ви не натискаєте ctrl-z Вам потрібно зберегти його за допомогою vi press esc, а потім наберіть: wq і натисніть клавішу Enter.
Метт Берроу

2
Вийдіть із редактора, додайте команду vi з sudo. Як так; sudo vi /etc/nginx/nginx.conf або sudo vi /etc/php5/fpm/php.ini
Метт Берроу

2
sudo nginx -s reloadперезавантажує конфігурацію без перезавантаження nginx
Vincnetas

12

Якщо ви використовуєте 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
Цей пов'язаний проект: github.com/evertramos/… (у nginx-проксі від jwilder у поєднанні з генерацією сертифікатів з шифрується даними) є акуратний скрипт для цього і попередньо налаштований цей параметр (до 100 ММ). Створіть .env із зразка; коментувати лінію #USE_NGINX_CONF_FILES=true; біжи start.shі нарешті docker-compose up. (Я не пов'язаний ні з одним із проектів).
glaux

3

Спочатку перейдіть по Шлях php.ini

sudo vi /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 та завантажити_max_filesize + post_max_size протягом усього дня. Без коригування тайм-ауту HTTP він ніколи не вийде.

// Вам потрібно налаштувати це, ймовірно, також на стороні PHP. client_body_timeout 2min // Завантаження файлів 1 Гб


Більше інформації про налаштування вашого веб-сервера тут: doc.owncloud.com/server/admin_manual/configuration/files/…
Digital Human
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.