Частые ошибки Nginx сервера

Категория: Nginx

Исправляем частые ошибки на Nginx сервере с PHP-FPM.

413 Request Entity Too Large

Данные запроса превышают допустимый размер (скорее всего это происходит на этапе загрузки файла).

Правим /etc/nginx/nginx.conf:

http {
  client_max_body_size 100M;
}

Доступные контексты для опции client_max_body_size это http, server, location.

Правим /etc/php/7.0/fpm/php.ini и /etc/php/7.0/apache2/php.ini (находим параметры и задаем нужные значения):

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 512M
Примечание

Можно использовать команду для быстрой замены параметров:

sudo sed -ie '/post_max_size *=/ s|=.*$|= 100M|' /etc/php/php.ini
sudo sed -ie '/upload_max_filesize *=/ s|=.*$|= 100M|' /etc/php/php.ini

504 Gateway Time-out

Скрипт не успевает отработать за выделенное время (по умолчанию 30 сек).

Правим /etc/nginx/nginx.conf:

http {
  fastcgi_read_timeout 600s;

  ## @note Если Nginx используется как прокси Этот таймаут обычно не может превышать 75 секунд
  proxy_connect_timeout       300s;
  proxy_send_timeout          300s;
  proxy_read_timeout          300s;
  send_timeout                300s;
}

Правим /etc/php/7.0/fpm/php.ini и /etc/php/7.0/apache2/php.ini:

max_execution_time = 600
max_input_time = 600
Примечание

Можно использовать команду для быстрой замены параметров:

sudo sed -ie '/max_execution_time *=/ s|=.*$|= 600|' /etc/php/7.0/fpm/php.ini
sudo sed -ie '/max_input_time *=/ s|=.*$|= 600|' /etc/php/7.0/fpm/php.ini
Применение конфигурации

Не забываем применить настройки:

sudo nginx -s reload

Если вы безуспешно пытаетесь импортнуть БД через phpmyadmin и получаете ошибку: "Script timeout passed, if you want to finish import". Вам необходимо установить таймаута в конфиге phpmyadmin\libraries\config.default.php:

$cfg['ExecTimeLimit'] = 0;

А лучше разверните дамп из консоли - это займет у вас значительно меньше времени: Как развернуть дамп MySQL БД из консоли.

#nginx error 413 request entity too large

категория: Nginx