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 делает это плавно.

Обновлено 25 февраля 2019 г.