Код ошибки 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 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 Gateway Timeout (time out) - одна из самых распространенных. Что же такое - 504 Gateway Timeout (time out)? Как правило, подобного рода ошибка может возникать в том случае, если на сервер, на котором находится какой-то веб-ресурс, посылается огромное количество запросов, и он просто не успевает их обрабатывать, то есть у него не получается в установленный лимит времени вернуть HTTP-ответ. Вследствие этого может даже прерываться соединение, а пользователь так и не получит доступ к веб-ресурсу. Это обусловлено тем, что сервер не успевает обрабатывать старые запросы, которых накопилось уже много, а появляются еще и новые, которые встают в очередь и не успевают обрабатываться.

Как устранить ошибку 504 Gateway Timeout (time out)?

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

Справиться с насущной проблемой может только администратор сервера, который должен увеличить его производительность в несколько раз. Осуществить задуманное можно только если увеличить количество оперативной памяти компьютера, а также сменить процессор на более мощный. Кроме того, потребуется увеличить количество процессов httpd непосредственно в среде Apache. Может случиться и такое, что сайту вообще придется «переехать» на другой хостинг. Такая необходимость возникнет только в том случае, если сайт будет располагаться на обычном виртуальном хостинге, администратор которого либо не будет отвечать на запросы, либо откажется от помощи или если у него не получится решить такую проблему.

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

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

А может быть и два в одном. Каждый человек активно пользуется интернетом, он только облегчает нашу жизнь. Но пользуемся мы чем? Браузерами. Они дают доступ ко всем возможным сайтам, но… Бывают случаи, когда на сайт зайти не получается.

Возникает ошибка 504 gateway time-out. А что оно вообще такое? Давайте приступим к разбору.

Что такое 504 gateway time-out

На самом деле, у каждого сайта есть свой HTTP. Это такой определённый доступ к сайту, который позволяет загружать из него любую информацию. Без разницы, что из себя представляет эта информация, сайт должен загрузиться сам. И чтобы он загрузился, нужно использовать .

Но ведь бывает ошибка, которая имеет число 504. У неё есть несколько классификаций. Либо она возникает в случае, когда на сайте технические неполадки. Либо она возникает, когда не получается установить связь с сайтом. В нашем случае происходит именно ошибка номер два.

Почему мы так решили? Потому что «gateway time-out» означает, что вышло время на загрузку этого самого сайта. Странно, но как она возникает? Давайте разбираться.

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

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

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

Вторая причина — неполадки на сайте . Да, мы упомянули их выше, но сейчас расскажем поподробнее. Что такое сайт? Это такая страница, которая позволяет содержать на себе абсолютно разную информацию. Будь то какие-то развлекательные или поучительные мотивы.

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

Или же не остановила, но в следствии ремонтных работ пропал сам сайт. Бывает и так. Так что не стоит переживать и винить сразу провайдера, может проблема на стороне самих создателей сайта.

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

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

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

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

На этом всё. Наша статья завершается на очень позитивной ноте. Мы сумели решить проблему легко и просто. Часто проблемы решаются лёгким путём, часто — не особо.

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

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

К тому же, лучше узнать о проблеме от профессионалов, которые помогут решить её. Не нужно стараться сделать всё самому. Может быть, это будет очень плохим решением для Вас. Желаем Вам никогда больше не встречаться с такого рода проблемой и быть всегда на позитиве!



Просмотров