Частые ошибки 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