На серверах с nginx в качестве фронтенда и Apache в качестве бэкенда часто можно увидеть такую ошибку. Обычно это воспринимается как проблема в nginx и веб разработчики начинают его усердно пилить. Тем не менее, довольно часто это не совсем так.
Надо понимать, что 504 Gateway Timeout возникает, когда nginx передал клиентский запрос Apache, а Apache не смог вернуть HTTP-ответ в установленный лимит времени.
Так вот, как раз суть проблемы в том, что Apache не смог ответить. Возможно, на сайте возросла нагрузка, и при этом Apache не успевает отдавать HTTP-ответы, а новые запросы встают в очередь. Клиенты «висят» в очереди и если в установленное время их так и не успевают обслужить, соединения сбрасываются.
