502 Bad Gateway
Ошибка означает, что NGINX не может получить ответ от одного из сервисов на сервере. Довольно часто эта ошибка появляется, когда NGINX работает в связке с Apache,Memcached, а также обрабатывает запросы PHP-FPM.
Как правило, проблема возникает из-за отключенного сервиса (в этом случае нужно проверить состояние напарника и при необходимости перезапустить его).
Также, для PHP-FPM нужно проверить права доступа к сокету.
Для этого убедитесь, что в /etc/php-fpm.d/www.conf прописаны правильные права
listen = /tmp/php5-fpm.sock
listen.group = www-data
listen.owner = www-data
504 Gateway Time-out
Ошибка означает, что nginx долгое время не может получить ответ от какого-то сервиса. Такое происходит, если сервис, с которым nginx работает в связке, отдаёт ответ слишком медленно.
Проблему можно устранить с помощью увеличения времени таймаута.
При работе в связке NGINX+Apache в конфигурационный файл можно внести изменения
server {
...
send_timeout 800;
proxy_send_timeout 800;
proxy_connect_timeout 800;
proxy_read_timeout 800;
...
}
Также, причиной может быть сложная и потому долгая обработка php в работе PHP-FPM.
Здесь тоже можно увеличить время ожидания таймаута
location ~ \.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_read_timeout 800;
}
413 Request Entity Too Large
Ошибка означает, что вы пытались загрузить слишком большой файл. В настройках nginx по умолчанию стоит ограничение в 1Mb.
Для устранения ошибки в nginx.conf нужно найти строку
client_max_body_size 1m;
и заменить значение на нужное. Например, мы увеличим размер загружаеамых файлов до 30Mb
client_max_body_size 30m;
Также, можно отключить проверку тела ответа полностью значением ноль:
client_max_body_size 0;
После каждого внесённого изменения в конфигурационный файл необходимо перезагружать nginx
Как перезагрузить nginx
Для перезагрузки NGINX используйте restart или reload.
Команда в консоли:
service nginx reload
либо
/etc/init.d/nginx reload
либо
nginx -s reload
Эти команды остановят и перезапустят сервер NGINX.
Перезагрузить конфигурационный файл без перезагрузки NGINX можно так:
nginx -s reload
Проверить правильность конфигурации можно командой
nginx -t
В чём разница между reload и restart
Как происходит перезагрузка в NGINX:
-
Команда посылается серверу
-
Сервер анализирует конфигурационный файл
-
Если конфигурация не содержит ошибок, новые процессы открываются с новой конфигурацией сервера, а старые плавно прекращают свою работу
-
Если конфигурация содержит ошибки, то при использовании
-
restart процесс перезагрузки сервера прерывается, сервер не запускается
-
reload сервер откатывается назад к старой конфигурации, работа продолжается
restart обрывает работу резко, reload делает это плавно.