Параметры NGINX

Параметры NGINX

В файл /usr/local/nginx/conf/nginx.conf после строки keepalive_timeout 0; можно добавить следующие строки:

sendfile on; # обеспечивает прямую передачу файлов, включайте эту опцию всегда
tcp_nopush on; # полезно для sendfile, включение этой опции позволяет передавать заголовок ответа и начало файла в одном пакете, а также передавать файл в полных пакетах
keepalive_timeout 30; # Если у Вас на одной странице отдается множество файлов (например, малые версии фоток или скриншоты видео), то следует использовать keepalive соединения. Это поможет сэкономить на инициализации нового соединения при запросе каждой картинки, взамен пользоваться одним. Значение это опции имеет смысл ставить в пределах 20…30 секунд
directio 10m; # Эта опция позволяет включить прямое чтение без обращение в кеш операционной системы. Это полезно для больших файлов, поскольку операционный кеш для них малоэффективен. Опция позволяет задать минимальный размер для включения режима прямого чтения
expires 2h; # Поскольку мы имеем дело со статическими файлами, и есть вероятность того, что один и тот же пользователь сможет несколько раз запросить один и тот же файл, следует включить кеширование на браузере. Это достигается установкой опции “expires 2h” (кеш на 2 часа), которая отправит браузеру нужные заголовки
limit_rate 196K; # Позволяет ограничить скорость отдачи файлов. В том случае, если Вы отдаете потоковое видео, либо музыку, Вам следует установить ограничения на скорость отдачи. Это позволит сэкономить канал и обслужить больше клиентов
set $limit_rate 196K; # Предыдущая опция работает в рамках одного запроса, а не одного клиента. Такой вариант записи позволяет поставить ограничение на клиента.
limit_rate_after 1m; # Порог отдачи, после которого ограничение войдёт в силу
client_max_body_size 20m; # Максимально допустимый размер тела запроса клиента
client_header_timeout 60; # Таймаут при чтении заголовка запроса клиента. Если по истечении этого времени клиент не передаст полностью заголовок запроса, то ему возвращается ошибка «Request time out» (408)

client_body_buffer_size 10K; # размер буфера клиента. Это ограничения связанные с POST запросами. Обычно они используются при отправке форм.

client_header_buffer_size 2k; #то же самое, что и предыдущее, только ограничивает размер заголовков. Обычно 2К более чем достаточно.

client_max_body_size 128m; # максимальный размер запроса от клиента. Т.е максимальный размер файла который может загрузить юзер на сайт. При превышении этого ограничения NGINX выдаст ошибку 413 или Request Entity Too Large (размер запроса слишком велик)

large_client_header_buffers 2 2k; # максимальные число и размер буфера для больших заголовков.

client_header_timeout 12;
client_body_timeout 12; #Переменные **client_body_timeout** и **client_header_timeout** отвечают за установку времени ожидания прежде чем ответить на запрос клиента, будь то основная часть или заголовок. Если же ни того, ни другого отправлено не было, то сервер генерирует ошибку 408 или Request Time Out (время ожидания запроса превышено).

keepalive_timeout 15; #Переменная **keepalive_timeout** устанавливает время жизни соединения с клиентом. Проще говоря, сервер разрывает соединение с клиентом по истечению этого времени.

send_timeout 10; #И наконец, **send_timeout** устанавливается не на весь период передачи ответа, а только на промежуток между двумя операциями чтения. Если клиент по истечению этого времени не выполнял никаких действий, то сервер разрывает соединение с ним.

Дополнительно
tcp_nodelay on; # Директива разрешает или запрещает использовать опцию TCP_NODELAY (при переходе соединения в состояние keep-alive). Перед переходом соединения в keepalive nginx выводит данные вызовами writev() достаточно большими порциями для заполнения пакета (”postpone_output 1460″), поэтому данные должны уходить без задержек и TCP_NODELAY не нужен. А вот с последним неполным пакетом может случится небольшая задержка, если соединение не закрывается. Для этого и нужно включить TCP_NODELAY
Следующие изменения можно производить в файле /etc/php5/cgi/php.ini (также вы можете произвести их в файлах /etc/php5/*/php.ini)
upload_max_filesize = 20M # Максимальный размер закачиваемого файла
post_max_size = 20M # Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize

Обновлено: 01/11/2017 — 22:28

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

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