Означает 504. Компьютерная помощь

При попытке зайти на сайт Вы получаете сообщение ошибка 504 с текстом «Gateway Time-out. Nginx «. Такое сообщение появляется, как правило, на тех сайтах, где веб-сервер Nginx работает как фронт-энд для сервера Apache. Что это значит?
Несмотря на то, что ошибка 504 выдаётся именно Nginx, причиной появления её он не является, а сообщает нам о том, что долго ждал ответа от Апача, но так его и не дождался. Обычно такое происходит в тех случаях, когда на сервере, где расположен сайт, очень высокая нагрузка и он не успевает обрабатывать все HTTP-запросы. Как это устранить?

Если Вы посетитель сайта. В там случае у Вас только один выход — ждать пока администрация веб-ресурса решит проблему у себя. Вы, как простой посетитель, ничего сделать не сможете. Просто с некоторой периодичностью (раз в 2-3 часа) просто пробуйте зайти на страничку. Чаше не надо! Коли там действительно превышена нагрузка, то вы будете только «подливать масло в огонь».
В тех случаях, когда надо срочно посмотреть содержимое странички, а она пишет «Error 504 Gateway Time-out» — можно воспользоваться кешированной версией, которая храниться в веб-кеше крупных поисковых сервисов — Яндекс и Гугл. Для этого достаточно ввести адрес страницы в строку поиска и в найденном результате выбрать вариант «Сохранённая копия».

Если Вы администратор сайта. В этом случае возможны два варианта:
а) Вы арендуете VPS/VDS и имеете SSH-доступ к нему.
Начните с перезапуска серверов. Я покажу на примере Fedora/CentOS. Сначала рестартим Апач:

Service httpd restart

Затем — перезагрузим Nginx:

Service nginx restart

Не помогло? Тогда можно попробовать увеличить таймаут. Для этого в nginx.conf прописываем параметр:

Keepalive_timeout 60

По умолчанию его значение — 0.
Снова перезапускаем веб-сервер и смотрим изменилась ли ситуация.
Такой ход иногда может помочь. Но если на ресурс очень сильная нагрузка, то увеличив таймаут вы увеличите и количество ожидающих http-соединенний, а значит ещё повысите нагрузку, что крайне не желательно! А то плюсом добавится ещё и из-за перегруза httpd запросами.
Поэтому надо разобраться с тем, что же создаёт такую сильную нагрузку. Для этого воспользуемся командой:

Обратите внимание на значения в строчке «load average».

Его максимальное значение должно быть не более количества ядер у процессора. Ну плюс/минус 2. Если значение более 10 — надо бить тревогу. Обычно такое возникает в случае DDOS-атаки, из-за которой Apache забит Sync-запросами. Ишите с помощью команды netstat IP-адреса ботов и заносите их в DROP-правила пакетного фильтра Firewall.
Если на Вашем ресурсе Nginx работает вместе с PHP-FPM, то очень часто ошибка 504 возникает из-за медленных скриптов. Веб-сервер просто не дожидается результата выполнения. Спаси может помочь добавление параметра

Fastcgi_read_timeout 300;

в раздел:

Location ~ \.php$ { .... }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ошибка под номером 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 - причины возникновения и способы устранения - 4.6 out of 5 based on 15 votes

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

Что обозначает ошибка 504

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

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

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

Нехватка ресурсов на сервере из-за большой нагрузки.

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

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

Ошибки, допущенные в скриптах.

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

Можно выделить следующие причины задержки исполнения скрипта:

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

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

3. Скрипт пытается установить соединение через прокси-сервер, который на данный момент недоступен и не может обработать запрос.

Способы устранения ошибки 504

Рассмотрим несколько распространенных случаев и попытаемся понять как исправить 504 -ю ошибку.

Если шибка возникает из-за нагрузки на сервер, то в первую очередь необходимо предпринять следующие шаги:

1. Провести оптимизацию сервера.

2. Провести оптимизацию скриптов.

3. Увеличить доступные для сервера ресурсы (количество процессов httpd (Apache), оперативную память и т. п.)

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

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

Если есть подозрение на работу скриптов:

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

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

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

Причины 504 ошибки.

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

Смена площадки для сайта поможет решить проблему лишь на некоторое время. Насущная рекомендация — заняться оптимизацией ( , скриптов, запросов SQL). Следует также подумать об увеличении ресурсов сервера, поиске другого хостинга. Рекомендуется обратиться в службу консультации вашего хостинга. Но это лучше сделать после оптимизации скриптов сайта.

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

Решение ошибки.

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

Чтобы увеличить его, можно применить set_time_limit. Только не всегда удается задействовать эту схему из-за ограничений на хостинге. Если PHP запущен в так называемом безопасном режиме, то нужно в конфигурации php увеличить время работы скрипта(функция max_execution_time). Когда же не удается снять запрет на использование set_time_limit, попробуйте запустить данную функцию (max_execution). Наконец, можно в конфигурации сервера увеличить время работы скрипта. Для этого прописать следующее:

  • proxy_send_timeout 60; (ожидание для процесса передачи);
  • proxy_read_timeout 60; (ожидание для процесса чтения).

Ставим 60 с (120) вместо 30с стоящих по умолчанию.

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