Что такое 504 ошибка. Компьютерная помощь

Ошибка под номером 504 наиболее распространена среди сайтов на просторах интернета. В подавляющем большинстве случаев пользователи видят надпись «504 Gateway Time-out (time out)» на белом фоне и уходят с сайта, не разбираясь в причинах потери работоспособности ресурса. Куда более неприятно видеть код 504 владельцам сайта, особенно если неизвестно какими причинами была вызвана ошибка и что нужно делать, чтобы её исправить.

Ошибка 504 означает, что сервер, на котором расположен сайт, не успевает обработать запрос и вернуть в заданный лимит времени HTTP ответ пользователю . Чаще всего такая ситуация возникает при большой нагрузке на сервер: не имея возможности вовремя обрабатывать все запросы, сервер прерывает необработанные соединения по истечении установленного лимита времени. Если это происходит, вместо загрузки сайта пользователь видит на странице ошибку «504 Gateway Time-out».

Техническая сторона вопроса

В подавляющем большинстве случаев проблема с кодом 504 возникает:

  • если на сервере в качестве бэкенда установлен Apache;
  • при этом в качестве фронтенда установлен nginx.

Такое сочетание чаще всего генерирует ошибку 504 с примечанием Gateway Time-out. В такой связке nginx выступает в качестве чего-то вроде распределителя запросов пользователя, и они сначала попадают к нему, а не напрямую в Apache. И если из-за высокой нагрузки сервер Apache не смог вовремя ответить, nginx пошлёт пользователю соответствующий ответ в виде кода 504.

Из-за чего появляется ошибка 504

Появление ошибки 504 характерно для серверов Apache в случае большой нагрузки. Такие сервера имеют особенность: при поступлении большого количества запросов они не успевают обрабатываться. Всем пользователям, у которых браузеры не получили HTTP-ответ от сервера, будет показана ошибка 504 Gateway Time-out.

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

Ошибка на стороне скриптов

Иногда код «504 Gateway Tme-out» вызывает не чрезмерная нагрузка, а неправильная настройка скриптов на сайте . Любому скрипту отводится определённый отрезок времени на выполнение. На практике, по ряду причин, этого времени скрипту может не хватить.

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

Задержка в процессе выполнения скриптов на сайте может вызываться и другими причинами:

  1. Если скрипту для работы необходимы внешние ресурсы (к примеру, база данных на стороннем сервере), которая на данный момент недоступна.
  2. Если скрипт работает не напрямую, а с установкой соединения через прокси-сервер . В случае недоступности прокси-сервера или превышения времени ожидания ответа скрипт также выдаст код 504.
  3. Скрипт загружает данные со сторонних серверов, которые на данный момент недоступны .

Как решить проблему 504

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

  1. Попробовать определить основные источники нагрузки на сервере . Нужно найти, какие именно запросы обрабатываются дольше всего и приводят к возникновению очереди и последующей ошибки 504, и оптимизировать эти места.
  2. Оптимизировать все скрипты . Желательно, чтобы загружаемые сайтом скрипты физически находились на том же сервере, что и сам сайт, или по крайней мере на физическом пространстве, находящемся под контролем владельца сайта. Если оптимизировать скрипты, настроить время их выполнения и выделить необходимые для этого серверные ресурсы, ошибка 504 перестанет возникать из-за скриптов.
  3. Можно пойти простым путём: просто увеличить ресурсы сервера , если есть такая возможность. Увеличение оперативной памяти, количества процессов httpd для Apache и другие меры повышения производительности приведут к тому, что серверу снова станет хватать ресурсов для выполнения запросов. Правда, подобное решение может являться лишь временной мерой, и с ростом нагрузки отсутствие должной оптимизации опять заявит о себе.

В том случае, если сайт с достаточно высокой посещаемостью (или требующий много ресурсов) располагается на обычном виртуальном хостинге, мощностей может элементарно не хватать. Некоторые хостеры присылают своим клиентам уведомления о превышении допустимой нагрузки, некоторые – нет. Следует посмотреть логи и запросить нужную информацию о технической поддержке хостинга. Вполне возможно, что с сайтом всё в порядке, просто из-за роста посещаемости пора переходить на VPS, VDS и другие тарифы и услуги с существенно большими ресурсами.

Видео

Из видео вы узнаете, как самостоятельно исправить ошибку «504 Gateway Time-out (time out)».

Не получили ответ на свой вопрос? Предложите авторам тему.

Добрый день!

При заходе на сайт выдается ошибка 504 Gateway Timeout Error . Как ее исправить?

Ответ

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

Существует несколько способов для решения проблемы.

Способ 1. Перезагрузка страницы в веб-браузере

Самое первое, что Вы должны предпринять, — это попробовать через минуту или две перезагрузить страницу в своем браузере. Возможно хостинг в данный момент перегружен, и сайт быстро вернется в работу. Также можно попробовать открыть ту же страницу в каком-либо другом браузере. Кроме того, можно воспользоваться специальным онлайн-сервисом , показывающем недоступность сайта исключительно для вас или для всех пользователей. Если сервис выдал сообщение “site.ru looks down from here ”, то действительно сайт недоступен для всех.

Способ 2. Отключение параметров прокси

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

Способ 3. Проверка службы DNS

Ошибка 504 Gateway Timeout Error также может быть вызвана проблемами с DNS -службой, а именно на сервере, когда, например, домен не преобразован в корректный IP . Часто такое случается, если Вы только что перенесли свой сайт с локального компьютера на хостинг. В таком случае необходимо дождаться распространения DNS -данных по всей Сети (обычно до 48 часов).

Кроме того, проблемы с DNS могут быть и локального характера, т.е. на Вашем компьютере. Для их решения рекомендуется очистить DNS -кэш. Например, для операционный систем Windows для этого используют команду ipconfig /flushdns . В macOS можно применить dscacheutil -flushcache .

Наконец, Вы вправе на какое-то время изменить DNS -сервера Вашего хостинга на публичные (например, 8.8.8.8 или 8.8.4.4 от Google ).

Способ 4. Временное отключение CDN

Очередная причина возникновения ошибки 504 Gateway Timeout Error — проблемы с сетью доставки контента (CDN ). Если Вы используете этот сервис, можно временно его отключить. Часто для его подключения на сайте WordPress используют бесплатный плагин плагин CDN Enabler . Для отключения CDN на своем сайте достаточно будет просто деактивировать его и проверить работу сайта. Если после этого стало невозможным попасть в админ-панель, необходимо соединится с сервером Вашего хостинга (например, через ), перейти в каталог плагинов и переименовать папку cdn-enabler . В итоге Ваше соединение со службами CDN будет временно отключено. Аналогичная ситуация и с плагином WP Rocket или любым другим, взаимодействующим с CDN .

Иногда ошибка 504 может появляться вследствие использования прокси-серверов типа Cloudflare или Sucuri . Например, для первого сервиса существует два типа ошибки 504 .

Вариант 1

В этом случае проблема действительно со службой Cloudflare . Для ее решения нужно обратится в техподдержку сервиса.

Вариант 2

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

Способ 5. Проверка хостинга

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

Способ 6. Проверка и выявление спама, вирусов и DDoS-атак

Еще одна причина возникновения ошибки 504 — это наличие спама, вируса или DDoS -атаки, что может привести к перегрузке и отказу сервера. В таком случае необходимо, во-первых, ознакомится с предоставляемыми компанией-хостингом инструментами для борьбы с вышеперечисленными угрозами. Часто в админ-панели хостинга присутствуют антивирус, а также включение защиты от DDoS -атак. Что касается спам-комментариев на сайте WordPress, то с этим довольно эффективно борются соответствующие плагины (например, самый популярный среди пользователей Akismet Anti-Spam ). Для выявления угроз обычно изучают статистику сервера, статистику поисковых систем на предмет подозрительных IP -адресов.

Способ 7. Проверка активных тем и плагинов

Иногда ошибка 504 Gateway Timeout Error может возникать вследствие сбоя или медленной работы какого-либо плагина или темы. В таком случае необходимо выяснить, какой именно плагин или тема дают сбой. В случае с темами можно активировать какую-либо другую тему и сразу проверить результат на сайте. Если причина в ней, то следует искать причину в коде. С плагинами дело обстоит немного иначе. Так, нужно будет по очереди отключать активные на сайте плагины и проверять на сайте. Если действительно какой-то из них дает сбой, можно поискать другие, с похожим функционалом.

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

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

Причины появления проблемы

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

Возможные решения проблемы

Стандартные решения

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

Восстановление из копии

Если ошибка появилась после очередного обновления операционной системы, следует откатиться на предыдущую версию. Здесь может помочь встроенный инструмент отката (если он есть в данной операционной системе) либо же придется обратиться к ранее сделанной копии с помощью расширенного рекавери (). Сделайте копию текущей версии системы со всеми параметрами, «вайпните» все разделы, исключив из списка внешнюю карту памяти, затем на очищенную памяти восстановите нужную копию из меню «Restore».

Восстановление из копии

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

Работа с картой памяти

Убедитесь, что на памяти, установленной по умолчанию, достаточно свободного места для загрузки и установки нового приложения. Оптимальное количество свободного пространства, которое желательно иметь для этих целей – 10% от общего объема, или 1 ГБ. Если места недостаточно, существует несколько способов его освободить:

  1. Удалите приложения, которыми вы не пользуетесь.
  2. Если на системной памяти хранятся «тяжелые» мультимедийные файлы и документы, переместите их на внешнюю карту.
  3. Очистите кэш приложений, в которых вы обычно ведете самую активную деятельность.
  4. Перенесите данные приложений из системных разделов на внешний накопитель.
  5. Удалите неактуальные фотографии и музыку.
  6. Установите более легкую прошивку.
  7. Поищите более легкие аналоги часто используемых приложений, компонентов, игр.
  8. Купите новую карту памяти с бОльшим количеством свободного пространства.
  9. Смените память по умолчанию на внешний накопитель, если на нем есть неиспользуемое свободное место.

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

После завершения операции перейдите к разделу «Память», пролистайте в самый низ и нажмите на кнопку «Отключить внешнюю карту памяти» или "Извлечь SD-карту".

После этого снова перейдите в Маркет и попробуйте скачать необходимое. Как вариант извлечения внешнего накопителя – физически извлечь его из слота после выключения телефона.

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

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

Итак, на своём сайте мы столкнулись с ошибкой 504 Gateway Time-out и не знаем, что же делать. В этом посте постараюсь описать полный алгоритм действий для решения этой проблемы, а так же поведать о причинах её возникновения. Следуйте под кат!

Так вот, продолжим. Для начала выясним, что это за HTTP код ошибки такой, а точнее, что же он означает? 504 - пятьсот четвёртая ошибка, она же Gateway Timeout, а точнее, на русском это звучит примерно так: «Время прохождения через шлюз истекло». Код означающий, что сервер при работе в качестве внешнего шлюза или прокси-сервера не получил своевременно отклик от вышестоящего бэкенда сервера, к которому он обратился, пытаясь исполнить запрос.

По этой ошибке легко можно представить внутреннюю организацию вашего web сервера. Это явно связка двух web серверов в которой один выступает в роли фронтенда (переднего сервера) и второй в качестве бэкенда (заднего сервера). И скорее всего, так бывает в 99% случаев, установлен веб сервер nginx, который выступает в качестве фронтенда и так же стоит сервер Apache в качестве бэкенда. Nginx берёт на себя роль распределяющего proxy сервера и отдаёт статику (картинки, файлы), а apache вместе с PHP обрабатывает динамику, там же и MySQL неподалёку. И ошибку 504 Gateway Time-out вы получаете именно от nginx.

В общем вернёмся к делу. Ситуация предельно ясна! За отведённое время сервер nginx просто не дожидается обратного ответа от apache и сообщает об этом вам. Т.е. прослеживаются явные перегрузки на «внутренней» стороне бэкенда. Другой вопрос в том, что именно порождает эти перегрузки от чего apache не успевает во время ответить? Это уже вопрос другой. Тут так просто не разобраться, надо смотреть логи сервера. Ну понятное дело, что кто то перегружен. Либо скрипт долго работает, либо СУБД не успевает обработать множество запросов, что кстати бывает чаще всего ведь коннектор с СУБД это самое слабое место. В общем ваш внутренний сервер не успевает в срок выполнить скрипт, точнее он просто долго выполняет, а nginx не хочет ждать и спешит отдать вам 504 ошибку. От чего не укладывается по времени apache так же ясно, либо много запросов извне и ресурсов сервера не хватает (это можно узнать из счётчика посещаемости сайта), либо выполняемый скрипт очень тяжёлый.

В общем речь сейчас не об этом, а том как справится с ошибкой 504. Многих веб мастеров вполне устраивает, то что страница генерируется по несколько минут, может быть оно того стоит.

В общем, ближе к делу, наша задача сказать серверу nginx, что бы он ждал ответа от apache подольше и не торопился отдавать клиенту ошибку 504. С этим всё просто! Естественно нужно иметь root доступ к своему серверу, о виртуальных хостингах и даже говорить не буду. В общем заходим на своей сервер, хоть даже по протоколу ssh в терминал и идём в папку с конфигурационными файлами сервера nginx. Сразу скажу, что они меняются от версии к версии и поэтому точно сказать какой именно файл будет не могу. Плюс ко всему всё ещё зависит от того в каком режиме работает nginx и кто его вам настраивал. Грубо говоря нам нужен текущий файл настроек сервера nginx. Возможно это даже будет nginx.conf, как в общем то и должно быть.

Заходим в условный файл настроек виртуальных хостов сервера nginx, расположенному по адресу: /etc/nginx/nginx.conf

Здесь можем либо поискать уже установленные директивы (если есть) или дописать вручную. Можно дописать естественно как для всех хостов, так и для каждого конкретного, не важно. В общем пишем следующее:

Proxy_send_timeout 60; # время ожидания при передаче запроса proxy_read_timeout 60; # время ожидания при чтении ответа

Эти директивы нужны для изменения времени ожидания. Лучше вставлять в контекст location. У меня получилось примерно следующим образом:

Server { listen xxx.xxx.xxx.xxx:80; # ip адрес сервера и прослушиваемый порт server_name someserver.loc; # имя сервера rewrite ^(/manager/.*)$ https://$host$1 permanent; error_page 404 = @fallback; # Далее две строки, которые надо добавить proxy_send_timeout 600; # время ожидания при передаче запроса proxy_read_timeout 600; # время ожидания при чтении ответа location / { proxy_pass http://xxx.xxx.xxx.xxx:8080; # протокол и адрес проксируемого сервера, а также необязательный URI, на который должен отображаться location proxy_redirect http://sitename.loc:8080/ /; # текст, который нужно изменить в полях заголовка “Location” и “Refresh” в ответе проксируемого сервера proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } }

Далее сохраняем файл конфигурации и перезапускаем сервер nginx. Теперь он будет ждать ответа от apache именно столько времени, сколько вы указали в добавленных директивах, а не по значению по умолчанию. Думаю понятно, что время вы сами выставляете какое хотите. Всё, теперь ошибка 504 Gateway Time-out вас беспокоить не будет. Понятное дело, что это лишь вершина айсберга и нужно будет разбираться с самой причиной долгой генерации страницы, но это уже другая тема. Возможно придётся так же поставить таймаут побольше и для PHP, а то может быть такое, что и он начнёт ругаться, мол ему дают мало времени на обработку. Для этого используем PHP директивы max_input_time и max_execution_time в файле настроек PHP - php.ini или в файле локальных настроек сервера Apache - .htaccess

Наверняка многие пользователи Интернета и компьютерных сетей не один раз сталкивались с такой неприятной ситуацией, как появление в браузере кода 504 (ошибка). Не все достаточно четко представляют себе, почему происходит такой сбой и как все это исправить. Давайте посмотрим, что к чему.

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

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

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

Причины появления ошибки

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

Следующее объяснение может показаться несколько сложным для восприятия, тем не менее здесь все просто. Дело в том, что такие сбои в основном проявляются при взаимодействии платформ Apache и nginx, когда первая установлена в качестве конечного сервера, а вторая - в качестве средства обработки входящих запросов. Получается, что пользовательский запрос адресуется не напрямую к Apache, а проходит предварительное согласование с nginx, после чего производится отправка на сервер, установленный в качестве бэкэнда.

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

Код 504 (ошибка): как с этим бороться?

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

Как правило, это либо кнопка «Обновить», либо использование функциональной клавиши F5. Такое правило действует для всех браузеров без исключения. Возможен, правда, более долгий вариант, когда связь является нестабильной. Очень может быть, что в данном случае придется перезагрузить всю систему или даже маршрутизатор (в частности, при использования доступа в Интернет через Wi-Fi-подключение).

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

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

Проблемы при инсталляции приложений

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

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

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

Заключение

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

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