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