Ошибка 504 Gateway Timeout возникает в том случае, если сервер, на котором размещён сайт не может в установленное время вернуть HTTP-ответ.
Как правило это возникает в том случае, если нагрузка на сервер сильно возросла и веб сервер не успевает ответить. Новые запросы встают в очередь, но за установленное время их так и не успевают обрабатывать, в следствии чего соединение и обрывается.
Чтобы справиться с этой проблемой нужно увеличить производительность сервера: количество оперативной памяти и мощность процессора, а также увеличить в Apache количество процессов httpd.
Второй вариант - оптимизировать работу сайта - скриптов, SQL запросов и т.д., чтобы они выполнялись быстрее.
Также проблема может возникать тогда, когда исполняемый скрипт не может уложиться в отведенный лимит времени. Так часто случается при обращении скриптом к сторонним узлам. В качестве решения подойдет увеличение значения параметра PHP max_execution_time
или оптимизация скрипта.