Как исправить ошибку 504 Gateway Timeout Error на вашем сайте WordPress

Опубликовано: 2020-10-26

Ошибка 504 Gateway Timeout — одна из наиболее распространенных ошибок HTTP 5xx , с которой сталкиваются владельцы и посетители веб-сайтов. Для многих блогов WordPress и платформ электронной коммерции знание того, как исправить ошибки сервера, подобные этой, имеет решающее значение, чтобы их с трудом заработанные посетители не перескакивали на сайты конкурентов.

Поскольку ошибка 504 Gateway Timeout не сообщает вам, почему это произошло, трудно точно определить, что вызывает тайм-аут сервера. Эта статья поможет вам подробно разобраться в этом, узнать, как диагностировать его причину, а затем устранить ее.

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

Звучит интересно? Давайте погрузимся!

Предпочитаете смотреть видео версию?

Ошибка 504 Gateway Timeout — одна из наиболее распространенных ошибок HTTP 5xx, с которой сталкиваются владельцы и посетители веб-сайтов. Узнайте, как быстро исправить это с помощью этого руководства. Нажмите, чтобы твитнуть

Что такое ошибка тайм-аута шлюза 504?

Каждый раз, когда вы посещаете веб-сайт в своем браузере, браузер отправляет запрос на веб-сервер, на котором размещен сайт. Сервер обрабатывает запрос и отвечает запрошенными ресурсами.

Иллюстрация того, как работают HTTP-запросы и ответы
Как работают HTTP-запросы и ответы.

Ответ сервера включает один из многих кодов состояния HTTP, чтобы указать статус ответа для браузера. Но не все эти коды состояния HTTP являются ошибками. Например, код состояния 200 OK означает, что сервер успешно обработал запрос и «Все в порядке».

Класс 5xx кодов состояния HTTP указывает на то, что с сервером что-то не так, сервер знает об этом и не может выполнить запрос клиента. В результате их также называют кодами состояния Server Error 5xx .

Официально для класса 5xx указано пять кодов состояния (500, 501, 502, 503, 504). Вы также можете встретить много неофициальных кодов (506, 507, 509, 520 и т. д.).

Инженерная рабочая группа Интернета (IETF) определяет ошибку 504 Gateway Timeout следующим образом:

Код состояния 504 (время ожидания шлюза) указывает на то, что сервер, выступая в качестве шлюза или прокси-сервера, не получил своевременного ответа от вышестоящего сервера, к которому ему необходимо было получить доступ для выполнения запроса.

Для дальнейшего упрощения эта ошибка возникает, когда два сервера участвуют в обработке запроса. Время ожидания первого сервера (обычно основного сервера) истекло в ожидании ответа от второго сервера (вышестоящего сервера).

Ошибка 504 Gateway Timeout проявляется в различных формах. Вот несколько способов, которыми это обычно проявляется:

ОШИБКА HTTP 504 в браузере Chrome
«ОШИБКА HTTP 504» в браузере Chrome.

Ошибка 504 Gateway Timeout аналогична ошибке 502 Bad Gateway, которая указывает на то, что первый сервер получил недопустимый ответ от второго сервера (вышестоящего сервера).

Код состояния 504 GATEWAY TIMEOUT в Chrome DevTools
Код состояния «504 GATEWAY TIMEOUT» в Chrome DevTools.

Варианты ошибки 504 Gateway Timeout Error

Браузер отображает внутри себя любую ошибку 504 Gateway Timeout, как и любую другую ошибку. Поскольку существуют различные операционные системы, веб-серверы, браузеры и пользовательские агенты, это может проявляться по-разному.

Ниже приведены несколько распространенных вариантов сообщений об ошибках 504, с которыми вы можете столкнуться:

  • Ошибка 504 Время ответа сервера истекло
  • 504 Тайм-аут шлюза NGINX
  • Тайм-аут шлюза NGINX 504
  • Ошибка тайм-аута шлюза
  • Ошибка 504
  • HTTP-ошибка 504
  • Ошибка HTTP 504 — тайм-аут шлюза
  • HTTP 504
  • 504 Ошибка
  • Время ожидания шлюза (504)
  • Эта страница не работает — домен слишком долго не отвечал
  • 504 Gateway Time-out — сервер не ответил вовремя
  • Запрос страницы был отменен, так как его выполнение заняло слишком много времени.
  • Посетители сайта: при обработке вашего запроса возникла проблема. Повторите попытку через несколько минут.
  • Владельцы сайтов: истекло время ожидания шлюза. Вы должны посетить свой журнал ошибок для получения дополнительной информации.
  • Пустой белый экран

Все приведенные выше ответы об ошибках, хотя и сформулированы по-разному, указывают на одну и ту же ошибку сервера 504 Gateway Timeout.

Веб-серверы и веб-сайты могут настроить отображение пользователям ошибки 504 Gateway Timeout. Некоторые из них могут быть крутыми! Это отличная тактика, чтобы подавить разочарование своих посетителей.

Настраиваемая страница ошибки HTTP 504 GitHub
Настраиваемая страница ошибки HTTP 504 GitHub.

Влияние ошибки тайм-аута шлюза 504 на SEO

Все ошибки 5xx препятствуют загрузке веб-страницы, что наносит ущерб пользовательскому опыту. Следовательно, поисковые системы, такие как Google, серьезно относятся к этим ошибкам. Если ошибка сохраняется в течение длительного времени, это может даже привести к деиндексации веб-страницы из результатов поисковой системы.

Например, когда пауки Google натыкаются на ошибку 503 Service Unavailable, они понимают, что это временная проблема, поскольку она в основном используется для включения режима обслуживания сайта. Таким образом, они попытаются снова просканировать страницу позже.

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

Но если ваш сайт не работает более 6 часов, Google будет рассматривать ошибку 504 как серьезную проблему для всего сайта, которую необходимо исправить как можно скорее. Это может негативно сказаться на вашем SEO.

Просмотр ошибок сканирования в Google Search Console
Просмотр ошибок сканирования в Google Search Console

Google Search Console — один из лучших SEO-инструментов для отслеживания ошибок HTTP 5xx на вашем сайте.

Причины ошибки 504 Gateway Timeout Error

Поскольку ошибка 504 возникает из-за тайм-аута между серверами, проблема, вероятно, не связана с устройством клиента или подключением к Интернету. Это также включает ваше устройство и соединение.

Ошибка 504 Gateway Timeout указывает на то, что веб-сервер слишком долго ожидает ответа от другого сервера и «тайм-аут». Причин для этого тайм-аута может быть много: другой сервер не работает должным образом, перегружен или отключен.

Другой сервер не всегда должен быть внешним (например, CDN, шлюз API). Это также может быть сервероподобный объект внутри основного веб-сервера (например, обратный прокси-сервер, сервер базы данных).

Как исправить ошибку тайм-аута шлюза 504

Не зная точных сведений о сайте WordPress, таких как конфигурация его сервера, тарифный план хостинга, сторонние плагины и трафик, который он привлекает, вам может показаться разочаровывающим и ошеломляющим исправление ошибки 504 Gateway Timeout.

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

Попробуйте перезагрузить веб-страницу

Одна из первых вещей, которую вы можете попробовать при обнаружении ошибки 504 Gateway Timeout, — это подождать несколько минут и попытаться перезагрузить страницу.

Вы можете нажать сочетание клавиш F5 , чтобы обновить/перезагрузить веб-страницу в большинстве браузеров. Чтобы удалить кеш браузера страницы перед перезагрузкой, вы можете вместо этого нажать комбинацию клавиш CTRL+F5 .

Обновление веб-страницы в браузере Chrome
Обновление веб-страницы в браузере Chrome

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

Если ожидание и перезагрузка сайта не устраняют проблему с ошибкой 504, вы можете проверить, не работает ли сайт для всех или только для вас. Два полезных онлайн-инструмента для проверки сайта на время простоя: «Не работает для всех или только у меня» и «Не работает ли он прямо сейчас?».

Тестирование Kinsta.com на Down для всех или только для меня
Тестирование Kinsta.com на Down для всех или только для меня

Перезагрузите сетевые устройства

Иногда проблемы с вашими сетевыми устройствами, такими как модем или маршрутизатор, могут привести к ошибке 504 Gateway Timeout. Перезагрузка этих устройств может помочь вам решить проблему.

Хотя вы можете выключать все эти сетевые устройства в любом порядке, важен порядок их включения. Как правило, эти устройства включаются «снаружи внутрь», следуя порядку подключения от интернет-провайдера к вашему основному клиентскому устройству.

Проверьте настройки прокси-сервера

Прокси-сервер находится между вашим устройством и Интернетом. В основном он используется для повышения конфиденциальности в Интернете путем сокрытия личной информации (например, местоположения устройства) от веб-сайтов и веб-серверов (например, с помощью VPN).

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

Изменение настроек «Прокси» в Windows 10
Изменение настроек «Прокси» в Windows 10

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

Проблемы с DNS

Ошибка 504 Gateway Timeout также может быть вызвана проблемами DNS на стороне сервера или на стороне клиента (или на обоих).

Наиболее вероятной причиной проблемы с DNS на стороне сервера является полное доменное имя (полное доменное имя), которое не разрешает правильный IP-адрес, или DNS-сервер не отвечает . Обычно это происходит, когда вы только что перенесли свой сайт WordPress на новый сервер или хост. Следовательно, важно дождаться полного распространения DNS-записей домена, что может занять до 24 часов.

Вы можете использовать бесплатные инструменты, такие как whatsmydns.net DNS Checker или DNSMap, чтобы узнать, распространился ли ваш DNS по всему миру.

Проверка распространения DNS для вашего домена на whatsmydns.net
Проверка распространения DNS для вашего домена на whatsmydns.net

Для устранения проблем с DNS на стороне клиента вы можете попробовать очистить локальный кеш DNS. Это похоже на очистку кеша браузера, за исключением того, что здесь вы очищаете кеш DNS из операционной системы.

Если вы используете Windows, вы можете очистить кеш DNS, открыв командную строку и введя следующую директиву:

 ipconfig /flushdns
Очистка кеша DNS с помощью командной строки
Очистка кеша DNS с помощью командной строки в Windows

Вы должны увидеть «Успешно очищен кэш преобразователя DNS». сообщение, если это сработало.

Для последних версий macOS вы можете открыть Терминал и выполнить следующую команду:

 sudo killall -HUP mDNSResponder

Вы не увидите никакого уведомления в macOS, когда процесс завершится, но вы можете изменить это, добавив к команде собственное сообщение.

 sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

Если вы используете более старые версии macOS, команда, которую вам нужно ввести, зависит от используемой версии macOS. Для получения более подробной информации вы можете обратиться к разделу macOS в подробном руководстве Kinsta по флеш-DNS.

Если вы используете операционную систему Linux, то процесс очень похож на macOS, поскольку даже Linux использует терминал в качестве интерфейса командной строки. Поскольку существует множество дистрибутивов Linux, конкретная команда, которую вам нужно запустить, может варьироваться от одного дистрибутива к другому. Вы можете ознакомиться с руководством Kinsta для получения дополнительной информации.

Наконец, вы можете временно изменить DNS-серверы на стороне клиента. По умолчанию ваш интернет-провайдер автоматически назначает вам DNS-серверы. Но вы можете временно изменить их на общедоступные IP-адреса DNS.

Некоторые надежные DNS-серверы, которые вы можете попробовать, — это Google Public DNS, Cloudflare 1.1.1.1, Quad9 DNS и Cisco OpenDNS.

Настройки пользовательских DNS-серверов в Windows 10
Настройки пользовательских DNS-серверов в Windows 10

Временно отключите CDN вашего сайта

Иногда проблема также может быть связана с вашей сетью доставки контента (CDN). Если исходный сервер сайта недоступен, большинство CDN попытаются обслужить всю веб-страницу из своего кеша.

Но большинство CDN не включают эту функцию по умолчанию, так как на большинстве сайтов сложно кэшировать динамические ресурсы (например, панель администратора WordPress).

Установка правила страницы «Кэшировать все» в Cloudflare
Установка правила страницы «Кэшировать все» в Cloudflare

Простой способ устранения неполадок — временно отключить CDN. Например, если вы используете бесплатный плагин CDN Enabler для WordPress, чтобы связать активы вашего сайта с URL-адресами CDN, вы можете деактивировать плагин и протестировать перезагрузку своего сайта.

То же самое касается использования любого другого плагина, который вы можете использовать для подключения к CDN (например, WP Rocket, Breeze, W3 Total Cache).

Если вы не можете получить доступ к панели администратора вашего сайта, вы можете отключить плагин через SFTP, переименовав имя папки плагина.

Отключите все плагины через SFTP, переименовав имя папки плагинов.
Отключите все плагины через SFTP, переименовав имя папки плагинов.

CDN, такие как Cloudflare или Sucuri, которые предоставляют полные прокси-сервисы, имеют дополнительные брандмауэры между своими пограничными серверами и вашим исходным сервером. Следовательно, вы можете чаще сталкиваться с ошибками HTTP 5xx при их использовании. Большинство из них кэшируют ошибки 5xx, возвращаемые исходным сервером, поэтому их легко устранять.

Бесплатный план Cloudflare может выдавать ошибку 5xx. К сожалению, поскольку это полноценный прокси-сервис, его нельзя быстро отключить. Но прежде чем обвинять в этом Cloudflare, знайте, что Cloudflare показывает два варианта ошибки 504 Gateway Timeout.

504 Тайм-аут шлюза в Cloudflare (вариант 1)

Cloudflare покажет вам настраиваемый экран ошибки 504 Gateway Timeout, когда исходный сервер вашего сайта ответит стандартным ответом HTTP 504.

Пользовательский экран Cloudflare с ошибкой 504
Пользовательский экран Cloudflare с ошибкой 504

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

504 Тайм-аут шлюза в Cloudflare (Вариант 2)

Если Cloudflare вызывает ошибку 504 Gateway Timeout, на экране ошибки будет упомянуто «cloudflare», которое в настоящее время является стандартным именем сервера для всех активов Cloudflare. Обычно экран ошибки выглядит следующим образом:

Ошибка 504 Gateway Timeout, вызванная Cloudflare
Экран ошибки 504 Gateway Timeout, вызванный Cloudflare

Поскольку сам Cloudflare не отвечает, вы не увидите здесь никаких экранов ошибок с логотипом Cloudflare.

Скорее всего, Cloudflare уже знает о проблеме и уже работает над исправлением. Вы можете убедиться в этом, проверив веб-страницу состояния системы Cloudflare. Кроме того, вы можете связаться со службой поддержки Cloudflare для более быстрого решения проблемы.

Проверьте статус системы Cloudflare на сайте cloudflarestatus.com.
Проверьте статус системы Cloudflare на сайте cloudflarestatus.com.

504 Тайм-аут шлюза в Cloudflare из-за больших загрузок

Размер ваших загрузок на ваш сайт также может быть причиной тайм-аутов сервера. Cloudflare ограничивает размер загружаемого файла (для каждого HTTP-запроса POST) до 100 МБ как в тарифах Free, так и в Pro.

Ограничения Cloudflare «Максимальный размер загрузки» для различных планов
Ограничения Cloudflare «Максимальный размер загрузки» для различных планов

Проблема может быть на стороне вашего хоста или в Cloudflare. Вы можете узнать точную причину, обойдя Cloudflare с файлом хостов DNS и повторив попытку загрузки.

Если вы используете Cloudflare с WordPress, я рекомендую использовать их бесплатный плагин и исключить важные URL-адреса из кэширования (например, панель администратора WordPress). Вы можете обратиться к подробному сообщению Kinsta о том, как настроить параметры Cloudflare для WordPress.

Рекомендуемая литература: Как настроить Cloudflare APO для WordPress.

Проблемы с сервером (уточните у своего хоста)

Проблемы с сервером — одна из наиболее распространенных причин возникновения ошибки 504 Gateway Timeout. Поскольку большинство сайтов WordPress размещены на веб-серверах Nginx или Apache, Nginx или Apache ждут ответа от чего-то и истекают по тайм-ауту.

Многие клиенты приходят в Kinsta именно с этой проблемой, с которой они сталкиваются на других хостах WordPress. Разговор идет примерно так:

Мы получаем около 100 тысяч посетителей в месяц с более чем 200 тысячами просмотров. В настоящее время мы размещаемся на ____ и постоянно сталкиваемся с ошибкой 504 из-за перегрузки сервера. Мне не нравится, как ____ решил проблему, и нам также сообщили, что вскоре нам придется перейти на их специальные планы, что, я считаю, не нужно.

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

Kinsta использует управляемые хосты LXD и программные контейнеры LXC для каждого сайта. Таким образом, каждый сайт WordPress размещается в собственном изолированном контейнере с доступом ко всему программному обеспечению, необходимому для его запуска (Linux, Nginx, PHP, MySQL). Ресурсы являются 100% частными и не передаются ни одному другому сайту, даже вашему сайту.

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

Помимо изоляции каждого сайта в своем контейнере, Kinsta также разработала свою инфраструктуру, чтобы легко обрабатывать тысячи одновременных подключений. Kinsta даже размещает базы данных MySQL на локальном хосте, а не на удаленном сервере. Это означает отсутствие задержки между машинами, что приводит к более быстрым запросам и меньшей вероятности тайм-аутов.

Многие клиенты, которые переходят на Kinsta, отмечают значительное сокращение общего времени загрузки.

Увеличение производительности на 212,5% после перехода на C2.
Увеличение производительности на 212,5% после перехода на C2.

Перегруженный сервер — не единственная причина тайм-аута сервера. Может быть много других причин ошибки 504:

Медленная серверная инфраструктура

Сервер, который вы используете для размещения своего сайта WordPress, может не иметь достаточно ресурсов для обработки нагрузки. Это как играть в современную видеоигру с интенсивной графикой на компьютере десятилетней давности.

Сервер просто зависает, пытаясь обслужить сайт. Единственное решение этой проблемы — перейти на сервер с лучшей инфраструктурой. По этой причине даже самый простой план хостинга WordPress от Kinsta будет обрабатывать статический сайт со средним трафиком.

Требуется больше рабочих PHP

Работники PHP используются для выполнения кода вашего сайта WordPress. Сайт электронной коммерции, который получает 50 000 посетителей в месяц, требует гораздо больше ресурсов, чем простой блог с таким же объемом трафика. Если все PHP-воркеры сервера заняты, они выстроятся в очередь.

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

Проблемы с брандмауэром

Брандмауэр вашего сервера может иметь некоторые ошибки или неправильную конфигурацию. Возможно, несколько его правил мешают серверу правильно установить соединение. Чтобы узнать, является ли ваш брандмауэр виновником, вы можете проверить журналы ошибок вашего сервера.

Проблемы с сетевым подключением

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

Тайм-ауты HTTP

Тайм-ауты HTTP могут возникать, когда соединение между веб-сервером и клиентом остается открытым слишком долго. С сайтами WordPress это обычно происходит при выполнении импорта WordPress. Один из способов решить эту проблему — переключиться на более быстрое интернет-соединение.

Вы также можете использовать инструмент с поддержкой WP-CLI для запуска сценариев непосредственно на сервере, полностью минуя HTTP-соединение. Например, вы можете использовать команду wp import WP-CLI для запуска плагина WordPress Importer напрямую через интерфейс командной строки.

Важно! Ошибки 504 Gateway Timeout похожи на ошибки 503 Service Unavailable или 502 Bad Gateway. Но они все разные. Если вы столкнулись с ошибкой 504 в Kinsta, откройте заявку в службу поддержки, чтобы немедленно решить вашу проблему.

Для самостоятельного мониторинга времени простоя вашего сайта вы можете использовать такой инструмент, как updown.io. Он будет периодически проверять статус вашего веб-сайта (или любого URL-адреса), отправляя ему HTTP-запрос. Вы можете установить периодичность проверки от 15 секунд до 1 часа. Если ваш веб-сайт не отвечает должным образом, он уведомит вас по электронной почте или SMS.

Следите за своим сайтом с помощью updown.io
Легко контролируйте свой сайт с updown.io

Вы получите большое количество бесплатных кредитов с каждой учетной записью updown.io, но если вы ищете более дешевые альтернативы, вы можете проверить WebGazer или UptimeRobot. Оба этих инструмента помогут вам бесплатно отслеживать время работы вашего сайта каждые 5 минут. Этого вполне достаточно для большинства владельцев веб-сайтов.

Панель мониторинга веб-сайта WebGazer
Панель мониторинга веб-сайта WebGazer

Мониторинг вашего веб-сайта даст вам представление о том, как часто он не работает. Это особенно полезно, если вы используете провайдера виртуального хостинга. Большинство управляемых хостингов WordPress позаботятся об этом автоматически. Поэтому всегда рекомендуется идти с ними.

Для подробного объяснения ознакомьтесь с сообщением Kinsta о важности управляемого хостинга WordPress.

Спам, боты или DDoS-атаки

Злоумышленники могут вывести ваш веб-сервер из строя, отправив слишком много и/или ресурсоемких запросов. Если ваш сайт рассылается ботами или подвергается DDoS-атаке, это может перегрузить ваш сервер и привести к ошибкам 504 Gateway Timeout для многих реальных пользователей.

Вы можете просмотреть трафик своего сервера и аналитику, чтобы увидеть, можете ли вы обнаружить какие-либо нерегулярные закономерности в трафике сайта. Если вы используете Kinsta для размещения своего сайта, вы можете легко просмотреть эти данные, перейдя на панель инструментов MyKinsta Analytics.

Панель управления MyKinsta Analytics
Панель управления MyKinsta Analytics

Начните свое расследование с просмотра основных IP-адресов клиентов. Это даст вам представление о том, кто генерирует максимальное количество запросов и откуда. Если ваш сервер внезапно использует огромную пропускную способность или привлекает много трафика, то этот отчет будет очень кстати.

Просмотр «Основных IP-адресов клиентов» на панели инструментов MyKinsta
Просмотр «Основных IP-адресов клиентов» на панели инструментов MyKinsta

Далее вы можете просмотреть отчет об анализе кэша . Здесь вы можете увидеть, сколько запросов обходит или отсутствует кеш, или обслуживается из кеша. Из соображений производительности и стабильности вы хотите кэшировать как можно больше запросов, но это не всегда возможно.

Например, сайты WooCommerce генерируют множество некэшируемых запросов на такие функции, как корзина покупок и процесс оформления заказа.

Экран «Анализ кеша» в MyKinsta
Экран «Анализ кеша» в MyKinsta

Наконец, вы можете использовать плагин безопасности WordPress, чтобы усилить безопасность вашего веб-сайта, обнаруживая и блокируя опасный трафик/IP-адреса. Вы также можете попросить своего хоста заблокировать определенные IP-адреса.

Боретесь с простоями и проблемами WordPress? Kinsta — это решение для хостинга, разработанное с учетом производительности и безопасности! Ознакомьтесь с нашими планами

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

Примечание. Kinsta не позволяет своим клиентам устанавливать плагины безопасности WordPress, поскольку они могут оказать огромное влияние на производительность сайта, особенно на его возможности сканирования. Поскольку Kinsta использует балансировщики нагрузки с Google Cloud Platform, блокировка IP-адресов не всегда будет работать должным образом.

Вы можете использовать специальные решения для обеспечения безопасности, такие как Cloudflare или Sucuri, для защиты своих сайтов от DDoS-атак и спам-ботов. Для получения дополнительной информации вы можете ознакомиться со статьями Kinsta о том, как установить Cloudflare на свой сайт WordPress и как Sucuri помог остановить DDoS-атаку на своем пути.

Поврежденная база данных WordPress

Иногда ошибка 504 Gateway Timeout может быть связана с поврежденной базой данных, особенно на сайтах WordPress. Как правило, это происходит из-за поврежденных таблиц или файлов базы данных. Иногда это также может быть вызвано серьезной проблемой безопасности, такой как взлом вашего сайта или базы данных.

Восстановление поврежденной базы данных WordPress зависит от проблемы. Такие плагины, как WP-DBManager, упрощают диагностику проблем с базой данных и их устранение. Я рекомендую вам прочитать подробное пошаговое руководство Kinsta по устранению проблем с базой данных WordPress, чтобы начать работу.

Проверьте плагины и темы вашего сайта

В большинстве случаев сторонние плагины и темы не вызывают ошибки 504. Но есть небольшой шанс, что они могут вызвать тайм-ауты сервера, обычно из-за постановки в очередь многих некэшированных запросов, сгенерированных плагином/темой. Поскольку это связывает множество рабочих PHP-процессов вашего сервера, это может привести к ошибке 504.

Отличным примером этой проблемы является WooCommerce, плагин, устанавливаемый для добавления функций электронной коммерции на сайты WordPress.

Самый простой способ решить эту проблему — деактивировать все ваши плагины. Помните, что вы не потеряете данные, если просто деактивируете плагин.

Если у вас есть доступ к панели администратора, вы можете перейти на экран « Плагины », выбрать « Деактивировать » в меню массовых действий, отметить все плагины галочками, а затем нажать кнопку « Применить ». Это отключит все ваши плагины.

Деактивировать плагины в WordPress
Деактивация всех плагинов WordPress через панель администратора WP

Если вы не можете получить доступ к своей административной области, вы можете отключить плагины через SFTP, используя метод, описанный ранее. Просто переименуйте имя папки основного плагина, чтобы отключить все плагины сразу.

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

Наконец, убедитесь, что ваши плагины, темы и ядро ​​WordPress обновлены. Также убедитесь, что на вашем сервере установлена ​​рекомендуемая версия PHP.

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

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

Проверить журналы ошибок

Просмотр журналов ошибок может быть очень полезен при устранении неполадок и отладке ошибок 504 на вашем сайте WordPress. Это может помочь вам быстро сузить проблему на вашем сайте, особенно если она возникла из-за требовательного плагина на вашем сайте.

Если вы являетесь клиентом Kinsta, вы можете легко увидеть ошибки в средстве просмотра журнала на панели инструментов MyKinsta.

Проверка журналов ошибок внутри панели управления MyKinsta
Проверка журналов ошибок внутри панели управления MyKinsta

Если на вашем хосте нет инструмента ведения журнала, вы можете включить режим отладки WordPress, добавив следующий код в файл wp-config.php :

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

Константа WP_DEBUG включает или отключает режим отладки WordPress. Он имеет две необязательные сопутствующие константы, которые могут расширить его возможности. Константа WP_DEBUG_LOG все ошибки в файле debug.log в каталоге /wp-content/ . Если вы не видите этот файл, вы всегда можете его создать.

Константа WP_DEBUG_DISPLAY определяет, отображаются ли журналы отладки на HTML-странице. Установка значения false скроет все ошибки, но вы сможете просмотреть ошибки позже, так как вы также определили WP_DEBUG_LOG как true.

Важно: если у вас включен WP_DEBUG в среде Kinsta, он будет направлять все ошибки в файл debug.log , а не в файл error.log на панели инструментов MyKinsta.

Вы также можете загрузить необработанные файлы журнала ошибок WordPress через SFTP. Как правило, вы можете найти журналы ошибок в корневом каталоге вашего сервера в папке с именем «logs».

Доступ к папке журналов ошибок WordPress через SFTP
Доступ к папке журналов ошибок WordPress через SFTP

Пользователи Kinsta также могут включить режим отладки WordPress на своей панели инструментов MyKinsta. Для этого перейдите в « Сайты» > «Инструменты» > «Отладка WordPress» и нажмите кнопку « Включить ». Это позволит вам видеть ошибки и уведомления PHP без включения режима отладки через SSH или SFTP.

Наконец, вы можете проверить файлы журнала сервера. В зависимости от того, какой сервер вы используете для размещения своего сайта WordPress, они обычно находятся в следующих местах:

  • Apache: /var/log/apache2/error.log/
  • Nginx: /var/log/nginx/error.log/

Вы можете обратиться к документации по ведению журналов Apache или Nginx для получения дополнительной информации.

Правильно настройте параметры Apache или Nginx

Вы можете отредактировать файлы конфигурации вашего сервера, чтобы увеличить ограничения ресурсов для определенных директив. Это может помочь вам устранить ошибку 504 Gateway Timeout.

Для веб-серверов Apache

Во-первых, добавьте следующий код в ваш httpd.conf :

 TimeOut 600

Этот параметр определяет, как долго сервер будет ждать определенных запросов, прежде чем пометить это как проблему тайм-аута сети. Его значение по умолчанию — 60 секунд (версия Apache 2.4).

Вы можете добавить эту директиву только в файл httpd.conf , но не в файл .htaccess. Поскольку большинство провайдеров виртуального хостинга не позволяют изменять файл httpd.conf , вместо этого вы можете попробовать увеличить значение директивы LimitRequestBody в файле .htaccess .

Затем добавьте следующую строку в файл php.ini :

 max_execution_time 300

Значение директивы PHP max_execution_time по умолчанию составляет 30 секунд. Его увеличение позволит PHP-скриптам вашего сайта работать дольше.

Для веб-серверов Nginx

Если вы используете свои сайты WordPress на Nginx + FastCGI Process Manager (PHP-FPM) или используете Nginx в качестве обратного прокси-сервера для Apache, вы можете настроить параметры сервера, чтобы предотвратить ошибки 504 Gateway Timeout.

504 Ошибка тайм-аута шлюза на Nginx + FastCGI (PHP-FPM)

Во-первых, вы должны отредактировать файл конфигурации пула PHP-FPM. Вы можете найти его в /etc/php7.4/fpm/pool.d/www.conf на вашем сервере Nginx (точный путь может отличаться в зависимости от версии PHP). В качестве альтернативы вы можете запустить следующую команду в своем терминале, чтобы отредактировать файл конфигурации пула PHP-FPM:

 sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Затем установите следующую директиву:

 request_terminate_timeout = 300

После этого вы должны отредактировать файл php.ini . Вы можете найти его в /etc/php.ini . Откройте файл и добавьте/измените значение директивы max_execution_time на 300 секунд.

 max_execution_time = 300

Наконец, добавьте следующий код в блок местоположения вашего файла nginx.conf :

 location ~ .php$ { ... fastcgi_read_timeout 300; }

Перезагрузите Nginx и PHP-FPM, чтобы изменения вступили в силу.

 sudo service nginx reload sudo service php7.4-fpm reload

Точный код для перезагрузки PHP-FPM зависит от версии PHP, установленной на вашем сервере. Проверьте свой сайт, чтобы увидеть, устранена ли проблема.

504 Ошибка тайм-аута шлюза на прокси-сервере Nginx

Если вы используете Nginx в качестве обратного прокси-сервера для Apache, вы можете сделать его более щадящим по отношению к тайм-аутам сервера, добавив следующие директивы в файл nginx.conf :

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

Не забудьте перезагрузить Nginx после внесения изменений.

sudo service nginx reload

Другие ошибки HTTP, такие как 504 Gateway Timeout

Как упоминалось ранее в статье, многие другие ошибки HTTP 5xx аналогичны ошибке 504 Gateway Timeout. Это потому, что все они происходят на стороне сервера. Эти ошибки включают в себя:

  • 500 - внутренняя ошибка сервера
  • 501 Не реализована ошибка
  • 502 Неверная ошибка шлюза
  • 503 Ошибка недоступности службы

Другие ошибки HTTP, вызванные проблемами на стороне клиента, такие как ошибка 404 Not Found, также похожи на ошибку 504. Вы можете обратиться к подробному руководству Kinsta и списку кодов состояния HTTP для получения дополнительной информации.

Если вы не знаете, что вызвало ошибку 504 Gateway Timeout, как вы можете исправить ее вовремя, чтобы с трудом заработанные посетители не уходили на сайты конкурентов? Все подробности в этом посте. Нажмите, чтобы твитнуть

Резюме

На ваш сайт WordPress может повлиять ошибка 504 Gateway Timeout по нескольким причинам. В этой статье вы узнали, как устранить их все. Как правило, эти ошибки возникают из-за проблем на стороне сервера, и в этом случае вы можете связаться со своим хостом и быстро решить проблему.

Однако вы также должны понимать, что эта ошибка может быть вызвана сторонними плагинами, темами, службами, неэффективными запросами к базе данных или комбинацией двух или более из них. Если вы максимально используете ресурсы вашего сервера (например, рабочие PHP), рекомендуется оптимизировать ваш сайт для повышения производительности.

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

From simple static sites to complex ecommerce and membership sites, Kinsta's scalable hosting plans are designed to accommodate all types of websites. To learn more about our scalable cloud hosting, check out this article!

Did we miss anything? If you're still finding it difficult to fix the 504 Gateway Timeout error on your WordPress site, leave a comment below.