Как исправить ошибку 502 gateway time-out

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

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

Что означает ошибка 504 Gateway time-out

Error 504 «Gateway time-out» или её перевод Ошибка 504 «Время ожидания ответа от шлюза истекло» является одним из кодов состояния браузера (HTTP) серии 5xx. Такого рода ошибки чаще всего возникают на стороне сервера, что говорит о возможности их решения лишь владельцем сайта или хостинг-провайдером. Наиболее близкой по значению с ней является ошибка 502 Bad Gateway, которая зачастую может появляться при тех же обстоятельствах.

Появление ошибки 504 в окне вашего браузера означает то, что один из серверов сайта, к которому вы пытаетесь получить доступ, не успел вовремя обработать запрос и вернуть его браузеру. В таком случае вашему браузеру возвращается сообщение об ошибке. Гораздо более понятно объяснить структуру обработки запроса будет в виде цепочки.

Ошибка 504 Gateway timeout nginx Apache

Например, вы заходите на какой-то сайт, ваш браузер отправляет запрос к nginx (своего рода распределителю запросов), далее nginx запрашивает необходимые данные сайта у сервера Apache. Если сервер не успевает обработать запрос по каким-либо причинам, соединение обрывается и nginx возвращает вместо запрошенных данных страницу с подобной ошибкой – 504 Gateway Timeout.

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

Как может отображаться ошибка 504:

  • 504 Gateway Time-Out
  • HTTP 504
  • 504 Gateway Timeout
  • Error HTTP 504 
  • 504 Gateway Timeout nginx
  • Gateway Timeout (504)
  • HTTP 504 Gateway Timeout

Каковы причины 504 Gateway Time-out

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

Нехватка ресурсов

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

Проблемы со сторонними скриптами, плагинами, расширениями

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

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

Решение со стороны посетителя

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

  • Попробуйте несколько раз перезагрузить страницу. Эта проблема может возникнуть лишь при первоначальном посещении сайта и при последующей перезагрузке у вас получится получить доступ к нужному вам сайту.
  • Посетите сайт немного позже. Такого рода проблемы не всегда являются продолжительными и могут быть разрешены за короткое время.
  • Иногда проблемы могут возникнуть с вашим оборудованием или интернет-провайдером. Попробуйте перезагрузить его или поменять настройки DNS.

Решение со стороны владельца сайта или сервера

Для начала стоит определить причину её появления. Если к появлению ошибки привело увеличение количества посетителей на сайте, то самым правильным решением будет увеличить количество доступных ресурсов.

  • На виртуальном хостинге можно просто перейти на другой тарифный план, предварительно проконсультировавшись с технической поддержкой. Но здесь необходимо быть внимательным, так как у некоторых провайдеров из нашего рейтинга хостингов количество выделяемых ресурсов остаётся одинаковым для всех тарифов. Поэтому есть вероятность не решить проблему вовсе.
  • На выделенном сервере или VPS всё зависит только от вас, вы можете провести работы по оптимизации сервера, обновить устаревшее ПО или добавить больше необходимых ресурсов, вроде оперативной памяти и т.д.

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

Возможно на вашем сайте есть множество сторонних скриптов. Значит есть вероятность того, что какой-то из источников, к которому он обращается, может быть недоступен. В этом случае вам следует проверить эти ресурсы на доступность и при необходимости временно отключить соответствующие скрипты. Иногда некоторым требовательным скриптам требуется больше времени на их выполнение, в таком случае вам может помочь изменение данного параметра в файле php.ini: php_max_execution_time. Стандартным значением является 30, чего вполне хватает для большинства операций, но в некоторых случаях его можно изменить на 60 секунд.

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

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

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

Заключение

Ошибка 504 (Gateway Timeout) порой очень назойлива и заставляет понервничать. Но, если вы правильно нашли причину данной ошибки, то её решение будет лишь вопросом времени. Довольно часто причиной может стать недобросовестный хостинг-провайдер, размещающий большое количество клиентов на одном сервере или слишком сильно ограничивающий доступные вам ресурсы. Поэтому вам стоит внимательно отнестись к выбору хостинга и найти именно тот, который не подведёт вас в любой сложившейся ситуации.

Leave a Comment

Get new blog posts by email: