HTTP Error 504: Gateway Timeout
На установленном commerse 2 начала появляться надпись:
HTTP Error 504: Gateway Timeout
The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server it accessed in attempting to complete the request.
В основном, когда хочу перейти на ссылку "конфигурация".
Сделал восстановление из бекапа - всё исправилось.
Но после включения модуля "contact" опять тоже самое.
Подскажите, может можно что-то сделать? (сайт на сервере, не локальный)
На серверах с nginx в качестве фронтенда и Apache в качестве бэкенда часто можно увидеть такую ошибку. Обычно это воспринимается как проблема в nginx и его начинают усердно пилить. Тем не менее, довольно часто это не совсем так.
Надо понимать, что 504 Gateway Timeout возникает, когда nginx передал клиентский запрос Apache, а Apache не смог вернуть HTTP-ответ в установленный лимит времени.
Так вот, как раз суть проблемы в том, что Apache не смог ответить. Возможно, на сайте возросла нагрузка, и при этом Apache не успевает отдавать HTTP-ответы, а новые запросы встают в очередь. Клиенты «висят» в очереди и если в установленное время их так и не успевают обслужить, соединения сбрасываются.
Чтобы решить данную проблему, надо первым делом попробовать добавить ресурсов серверу (например оперативной памяти) и увеличить количество http процессов в Apache.
Также можно - хотя это уже не настолько просто - определить, на каких страницах и какие модули могут создавать большую нагрузку, и их оптимизировать, чтобы выполнялись быстрее. Для этого уже требуется больше времени и достаточно хорошая квалификация.
Конечно же, надо еще проанализировать и хостинг. Если имеем дело с обычным виртуальным хостингом, то вероятность решения проблемы без тюнинга друпала маловероятна, поскольку доступа к настройкам самого хостинга, как правило, нету, что дали - то есть. Возможно, придется хостинг поменять.
Также, можно попробовать увеличить лимит времени, отведенный для выполнения скриптов - значение параметра PHP max_execution_time.