На серверах з nginx в якості фронтенду і Apache в якості бекенду часто можна побачити таку помилку. Зазвичай це сприймається як проблема в nginx і веб розробники його починають пиляти. Проте досить часто це зовсім не так.
Тут треба розуміти, що 504 Gateway Timeout виникає, коли nginx передав клієнтський запит Apache, а Apache не зміг повернути HTTP-відповідь у межах встановленого ліміту часу.
Ото ж, суть проблеми в тому, що Apache не зміг відповісти. Можливо, збільшилось навантаження на сайт, і при цьому Apache не встиг віддавати HTTP-відповіді, а нові запити стають в чергу. Клієнти за такої ситуації "зависають" у черзі, і якщо їх так і не встигають обслужити у встановлений час, з'єднання скидається.