Ошибка 504 Gateway Time-out и как её исправить в WordPress

Ошибка 504 Gateway Time-out и как её исправить в WordPress

504 gateway time-out – это один из кодов состояния HTTP, который может вернуть сервер, если он не смог завершить обработку запроса. Хотя эта ошибка встречается реже, чем 500 internal server или 502 bad gateway, с ней, по крайней мере, пару раз, сталкивался каждый. Это руководство объясняет, что представляет собой ошибка 504 и как её исправить.

При посещении любого сайта он генерирует запросы и отправляет их на веб-серверы, на которых хранятся необходимые элементы. Каждый раз, когда обрабатывается запрос, сервер отправляет обратно код состояния HTTP с запрошенными ресурсами. По умолчанию код состояния HTTP не отображается. Его можно увидеть только в тех случаях, когда что-то пошло не так.

Что такое ошибка 504 Gateway Time-out?

Коды состояния HTTP, начинающиеся с цифры 5, являются ошибками на стороне сервера. Они появляются, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами.

504 gateway time-out – это код состояния HTTP, который появляется, когда один сервер не получает своевременный ответ от другого сервера, действующего как шлюз или прокси. Проще говоря, это означает, что сервер не смог выполнить ваш запрос в течение заданного периода времени.

Ошибка 504 - Скриншот Страницы с Ошибкой

Ошибка 504 также может иметь и другие формулировки, например:

504 Gateway Timeout nginx
Gateway Timeout Error
HTTP Error 504
504 Gateway Time-out – The server didn’t respond in time
HTTP Error 504 – Gateway Timeout

Как исправить ошибку 504 Gateway Time-out

В большинстве случаев причина ошибки 504 находится на стороне сервера, однако в отдельных случаях код 504 может появляться и по причине проблем или неправильных конфигураций с пользовательской стороны. Таким образом, мы рассмотрим основные этапы устранения неполадок с учётом обоих вариантов. Часть решений подходит для WordPress, но большинство из них могут быть применены к любому веб-сайту.

1. Обновите страницу

Первый шаг в решении ошибки 504 gateway time-out самый простой. Подождите несколько минут и обновите страницу. Может быть, что сервер в какой-то момент получил больше запросов, чем обычно и не смог их обработать.

Пока вы ожидаете, можете использовать онлайн инструмент, например, Website Planet и проверить, работает ли сайт. Это хороший способ определить, относится ли проблема к локальной сети.

2. Попробуйте другой браузер

В случае, если сайт онлайн, однако вы всё равно видите ответ 504, попробуйте сменить свой браузер на другой. Очистите кэш браузера или воспользуйтесь режимом инкогнито, это тоже может помочь определить, связана ли причина проблемы с браузером.

3. Очистите кэш DNS

Ошибка 504 gateway time-out иногда может быть результатом некорректного или устаревшего кэша DNS, но его несложно очистить. Способ очистки зависит от вашей операционной системы. Вот руководство как очистить кэш DNS в ОС Windows, Linux и Mac OS.

Временно переключите DNS сервера на Google Public DNS, это поможет определить возник ли код состояния HTTP по причине DNS. Однако мы рекомендуем этот вариант для более опытных пользователей.

4. Проверьте на разных устройствах

Попробуйте загрузить сайт на разных компьютерах, в разных сетях или на мобильных устройствах. Если ничего из выше перечисленного не помогло исправить ошибку 504 gateway time-out, этот шаг поможет вам определить, проблема находится на стороне сервера или имеет локальный характер.

5. Посмотрите журнал ошибок

Ошибка 504 gateway timeout может также быть вызвана недавними изменениями или обновлениями на сайте. Самый быстрый способ проверить это – посмотреть журнал ошибок (англ.) для поиска подсказок. Пользователи WordPress могут включить логирование ошибок добавлением таких строк в файл wp-config.php:

define( 'WP_DEBUG', true ); 
define( 'WP_DEBUG_LOG', true ); 
define( 'WP_DEBUG_DISPLAY', false );

Теперь все возникающие варианты ошибок будут появляться в файле wp-contents/debug.log.

Скриншот Файлового Менеджера Hostinger с Файлом Ошибок WordPress

6. Проверьте плагины

В процессе поиска причины ошибки 504 gateway time-out рекомендуется обратить внимание на плагины и расширения вашего сайта. В WordPress причиной ответа 504 могут быть плагины, относящиеся к кэшированию. Старые или несовместимые плагины также могут вызвать проблему. Временное отключение всех плагинов даст вам понять стоит ли копать дальше в этом направлении.

Для отключения всех плагинов WordPress перейдите в каталог wp-content, дайте каталогу plugins другое имя.

Скриншот Окна Переименования Каталога Plugins в Файловом Менеджере Hostinger

Если ваш сайт стал работать хорошо после отключения всех плагинов, то следующим шагом будет обнаружение того плагина, который мог привести к появлению ошибки HTTP 504. Верните каталогу plugins его исходное название и теперь по очереди пробуйте отключить каждый плагин.

Отключение плагина WordPress по FTP

7. Проверьте CDN

Если вы используете CDN для более быстрого получения контента, то обязательно проверьте всё ли в порядке с этой стороны. Самый распространённый случай – это CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS. При его использовании вы можете столкнуться в двумя видами ошибки 504 gateway timeout.

Скриншот Ошибки 504 Gateway Timeout, Вызванной CloudFlare - 1

Эта версия ошибки 504 появляется, когда проблема возникла на стороне CloudFlare. Самым лучшим решением будет связаться с поддержкой CloudFlare или отключить сервис. Однако, если вы его отключите, скорее всего, вам придётся ждать несколько часов пока изменения DNS распространятся.

Скриншот Ошибки 504 Gateway Timeout, Вызванной CloudFlare - 2

Версия, показанная выше означает, что проблема возникла на стороне хостинг-провайдера.

8. Измените настройки сервера

Если вы используете VPS-хостинг, то есть ещё несколько дополнительных моментов, которые вы можете попробовать для исправления ошибки 504 gateway timeout. Они будут заключаться в изменении настроек сервера и увеличении лимитов некоторых ресурсов.

Apache

Пользователи Apache могут увеличить значение timeout по умолчанию в файле httpd.conf. Например:

# Timeout: The number of seconds before receives and sends time out.
Timeout 600

Также может помочь, если вы увеличите значение лимита max_execution_time в php.ini:

max_execution_time 300

Сохраните изменения и перезапустите apache, после чего проверьте. Если причиной ошибки было недостаточное значение таймаута запроса, код 504 должен исчезнуть.

Nginx

Если ваш VPS использует Nginx, попробуйте увеличить такие параметры в файле /etc/nginx/conf.d/timeout.conf:

proxy_connect_timeout 600; 
proxy_send_timeout 600; 
proxy_read_timeout 600; 
send_timeout 600;

Также рекомендуется увеличить max_execution_time в php.ini:

max_execution_time 300

После сохранения изменений перезапустить Nginx и попробуйте ещё раз открыть свой сайт.

9. Свяжитесь со службой поддержки

В случае, если ничего из вышеперечисленного не помогло устранить ошибку 504 gateway time-out, рекомендуется обратиться в службу поддержки вашего хостинга. Постарайтесь описать, какие шаги вы проделали для выявления причины ошибки и её устранения и предоставьте как можно больше информации, это значительно ускорит процесс.

Выводы

В этом руководстве мы рассмотрели общие шаги для решения проблемы 504 gateway time-out. Если у вас есть свои хитрости, подсказки или дополнительные решения для устранения этого кода состояния HTTP, дайте нам знать в комментариях!

Author
Автор

Elena B.

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.