что такое 504 gateway time out как решить проблему
Как исправить 504 gateway time out Nginx
Веб-сервер Nginx часто работает не только в качестве самого веб-сервера для отдачи контента, но и в качестве прокси, когда он вступает только посредником. Такая ситуация наблюдается намного чаще, чем можно было бы ожидать. Например, при работе с php-fpm и другими модулями динамических языков.
Именно в таком режиме может наблюдаться ошибка 504 gateway time out Nginx. В нашей сегодняшней статье мы попытаемся разобраться почему она возникает и как с ней бороться. Разберем несколько способов решения и причин.
Что значит 504 gateway time out Nginx?
Как я уже сказал, такая ошибка возникает, когда сервер Nginx работает в режиме прокси. Например, при использовании php-fpm или Apache. Дословно, она означает, что превышено время ожидания ответа от сервера. В нашем случае, превышено время ожидания ответа от php-fpm. Рассмотрим несколько причин такого поведения:
Дальше рассмотрим что можно сделать если вы встретились с ошибкой 504 gateway time out Nginx.
Как исправить 504 gateway time out Nginx?
Нагрузку на процессор можно узнать командой htop:
Естественно, если вы видите, что PHP занимает все процессорное время, то значит проблема в ресурсах сервера. Вы можете покопаться в движке своего сайта, пытаться оптимизировать те или иные моменты, об этом будет отдельная статья или же выбрать более мощный VPS сервер.
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
Здесь 300 означает 300 секунд, для большинства скриптов, этого будет вполне достаточно, но вы можете еще больше увеличить значение если это нужно. Также ошибка 504 может возникать, когда Nginx используется в качестве прокси для Apache или любого другого веб-сервера, тогда нужно еще настроить время ожидания для прокси. Добавьте эти строки в секцию server:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
sudo systemctl restart nginx
Более подробную информацию иногда можно увидеть в error.log:
Дальше, если проблема именно в php-fpm, вы можете отследить какие скрипты выполняются медленно с помощью встроенной функции slow-log. Для ее активации добавьте следующие строки в конфигурацию вашего пула:
sudo vi /etc/php-fpm.d/www.conf
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s
Здесь 5 секунд, означает, что в лог файл будут добавляться скрипты, которые выполняются дольше пяти секунд. Вы можете менять это значение по своему усмотрению. В логе вы сможете увидеть не только сами скрипты, но и трассировку методов, которые привели к проблемам:
Дальше останется только разобраться что с этим делать, например, оптимизировать скрипты или отключить лишние плагины.
Выводы
В этой статье мы рассмотрели как исправить 504 gateway time out Nginx 1.2 7, а также почему может возникнуть эта ошибка. Надеюсь, эта информация была полезной для вас.
Ошибка 504 Gateway Time Out
Код ошибки в формате 5хх говорит о том, что на стороне сервера есть проблема: сервер не может обработать запрос от клиента. Клиентом в данном случае выступает браузер.
Ошибка 504 Gateway Time Out возникает, когда в заданный промежуток времени сервер не получает ответ от другого сервера, при этом другой сервер выполняет роль прокси или шлюза.
Ошибка 504 что значит
Какие ещё бывают варианты отображения ошибки:
В этой статье мы расскажем, как устранить код ошибки 504.
Как исправить ошибку 504 посетителю сайта
Итак, вы перешли на сайт, но вместо веб-страницы видите сообщение с кодом 504.
Что такое тайм аут шлюза
Проблема может быть как со стороны сайта, так и со стороны устройства, например настроек браузера. Чтобы убедиться в том, что настройки браузера в порядке:
1) Обновите страницу. Но обновите не клавишей F5, а выделите содержимое адресной строки и нажмите Enter. Если после этих действий ошибка 504 не возникает ни на текущем, ни на любом другом сайте – её можно проигнорировать.
2) Зайдите на тот же ресурс через другой браузер. Если в этом случае сайт открылся корректно, перейдите к следующему пункту.
3) Очистите кэш браузера и удалите файлы cookie. После этого браузер будет работать быстрее. Воспользуйтесь инструкцией Как очистить кэш браузера.
4) Перезагрузите роутер или модем. Отключите устройство от сети примерно на 10 минут.
5) Очистите кэш DNS. Для этого воспользуйтесь инструкцией ниже.
В зависимости от вашей операционной системы очистите кэш по одной из инструкций.
Что значит ошибка «504 Gateway Time-out» и как решить проблему
Ошибка под номером 504 наиболее распространена среди сайтов на просторах интернета. В подавляющем большинстве случаев пользователи видят надпись «504 Gateway Time-out (time out)» на белом фоне и уходят с сайта, не разбираясь в причинах потери работоспособности ресурса. Куда более неприятно видеть код 504 владельцам сайта, особенно если неизвестно какими причинами была вызвана ошибка и что нужно делать, чтобы её исправить.
Что означает ошибка «504 Gateway Time-out»
Ошибка 504 означает, что сервер, на котором расположен сайт, не успевает обработать запрос и вернуть в заданный лимит времени HTTP ответ пользователю. Чаще всего такая ситуация возникает при большой нагрузке на сервер: не имея возможности вовремя обрабатывать все запросы, сервер прерывает необработанные соединения по истечении установленного лимита времени. Если это происходит, вместо загрузки сайта пользователь видит на странице ошибку «504 Gateway Time-out».
Техническая сторона вопроса
В подавляющем большинстве случаев проблема с кодом 504 возникает:
Такое сочетание чаще всего генерирует ошибку 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.
Задержка в процессе выполнения скриптов на сайте может вызываться и другими причинами:
Как решить проблему 504
Точная последовательность действий для решения проблемы зависит от того, что именно привело к возникновению ошибки. Если причиной является слишком сильная нагрузка на сервер, можно попробовать предпринять следующие действия:
В том случае, если сайт с достаточно высокой посещаемостью (или требующий много ресурсов) располагается на обычном виртуальном хостинге, мощностей может элементарно не хватать. Некоторые хостеры присылают своим клиентам уведомления о превышении допустимой нагрузки, некоторые – нет. Следует посмотреть логи и запросить нужную информацию о технической поддержке хостинга. Вполне возможно, что с сайтом всё в порядке, просто из-за роста посещаемости пора переходить на VPS, VDS и другие тарифы и услуги с существенно большими ресурсами.
Видео
Из видео вы узнаете, как самостоятельно исправить ошибку «504 Gateway Time-out (time out)».
Ошибка 504 Gateway Time out — что означает и как исправить
Как можно исправить ошибку 504 Gateway Timeout
Ошибка 504 Gateway Timeout — это код состояния HTTP, который означает, что один сервер не получил своевременный ответ от другого сервера, к которому он обращался, при попытке загрузить веб-страницу или выполнить другой запрос браузера.
Другими словами, ошибки 504 обычно указывают на то, что другой компьютер, на котором веб-сайт, на котором вы получаете сообщение 504, недостаточно быстро связывается с ним.
Обратитесь к разделу «Исправление ошибок 504 на вашем собственном сайте», чтобы узнать о некоторых вещах, которые стоит рассмотреть.
Ошибка 504 Gateway Timeout может появиться в любом интернет-браузере, в любой операционной системе и на любом устройстве. Это означает, что можно получить ошибку 504 Gateway Timeout на вашем телефоне или планшете на Android или iPhone, в Safari на Mac, в Chrome на Windows 10 (или 8, или 7,…) и т. д.
Как вы могли увидеть ошибку 504
Отдельные веб-сайты могут настраивать отображение ошибок «тайм-аут шлюза», по другому, но вот наиболее распространенные формулировки, которые вы увидите:
В окне интернет-браузера появляется ошибка 504 Gateway Timeout, как обычную веб-страницу. На странице могут быть знакомые верхние и нижние колонтитулы сайта и английское сообщение, или он может отображаться на полностью белой странице с большой цифрой 504 вверху. Это все одно и то же сообщение, независимо от того, как его показывает веб-сайт.
Причины ошибки 504 Gateway Timeout
В большинстве случаев ошибка 504 Gateway Timeout означает, что другой сервер отвечает столько времени, что его срабатывает выходит отведенное время — «тайм-аут», вероятно веб сервер, которому вы обращаетесь не работает или работает неправильно.
Поскольку эта ошибка обычно является сетевой ошибкой между серверами в Интернете или проблемой с реальным сервером, проблема, не в вашем компьютере, устройстве или подключении к Интернету.
Есть несколько вещей, которые вы можете попробовать, на всякий случай:
Как исправить ошибку 504
Исправление 504 ошибок на вашем сайте
Часто это не ваша вина, но и не пользователь. Начните с проверки того, что ваш сервер может правильно разрешить все домены, к которым вашим приложениям необходим доступ.
Очень большой трафик может привести к тому, что ваш сервер выдаст ошибку 504, хотя 503, вероятно, будет немного более точным.
В частности, в WordPress сообщения 504: Время ожидания истекло иногда возникают из-за поврежденных базы данных. Установите WP-DBManager и попробуйте функцию «Восстановить БД», затем «Оптимизировать БД» и посмотрите, поможет ли это.
Кроме того, убедитесь, что ваш файл HTACCESS правильный, особенно если вы только что переустановили WordPress.
Наконец, рассмотрите возможность обращения в свою хостинговую компанию. Возможно, ошибка 504, которую возвращает ваш веб-сайт, связана с проблемой на их конце, которую они должны будут устранить.
Больше способов увидеть ошибку 504
Ошибка 504 тайм-аута шлюза при получении в Центре обновления Windows создает код ошибки 0x80244023 или сообщение WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT.
В программах на базе Windows, которые имеют доступ к Интернету, ошибка 504 может отображаться в небольшом диалоговом окне или окне с ошибкой HTTP_STATUS_GATEWAY_TIMEOUT и / или с запросом истекло время ожидания сообщения шлюза.
Менее распространенная ошибка 504 — время ожидания шлюза: прокси-сервер не получил своевременного ответа от вышестоящего сервера, но устранение неполадок (см. Выше) остается тем же.
Ошибки типа 504 Gateway Timeout
Ряд сообщений об ошибках аналогичен ошибке 504 Gateway Timeout, поскольку все они провляются на стороне сервера. Включают в себя Ошибку 500 Internal Server, Bad Gateway 502 и Unavailable 503 Service.
Существуют также коды состояния HTTP, которые не на стороне сервера, а на стороне клиента, как, например, ошибка 404 Not Found. Также существует несколько других, которые вы можете увидеть на нашей странице HTTP Ошибки кода состояния.
Ошибка 504 Gateway Time-out и как её исправить в WordPress
504 gateway time-out – это один из кодов состояния HTTP, который может вернуть сервер, если он не смог завершить обработку запроса. Хотя эта ошибка встречается реже, чем 500 internal server или 502 bad gateway, с ней, по крайней мере, пару раз, сталкивался каждый. Это руководство объясняет, что представляет собой ошибка 504 и как её исправить.
При посещении любого сайта он генерирует запросы и отправляет их на веб-серверы, на которых хранятся необходимые элементы. Каждый раз, когда обрабатывается запрос, сервер отправляет обратно код состояния HTTP с запрошенными ресурсами. По умолчанию код состояния HTTP не отображается. Его можно увидеть только в тех случаях, когда что-то пошло не так.
Что такое ошибка 504 Gateway Time-out?
Коды состояния HTTP, начинающиеся с цифры 5, являются ошибками на стороне сервера. Они появляются, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами.
504 gateway time-out – это код состояния HTTP, который появляется, когда один сервер не получает своевременный ответ от другого сервера, действующего как шлюз или прокси. Проще говоря, это означает, что сервер не смог выполнить ваш запрос в течение заданного периода времени.
Ошибка 504 также может иметь и другие формулировки, например:
Как исправить ошибку 504 Gateway Time-out
В большинстве случаев причина ошибки 504 находится на стороне сервера, однако в отдельных случаях код 504 может появляться и по причине проблем или неправильных конфигураций с пользовательской стороны. Таким образом, мы рассмотрим основные этапы устранения неполадок с учётом обоих вариантов. Часть решений подходит для WordPress, но большинство из них могут быть применены к любому веб-сайту.
1. Обновите страницу
Первый шаг в решении ошибки 504 gateway time-out самый простой. Подождите несколько минут и обновите страницу. Может быть, что сервер в какой-то момент получил больше запросов, чем обычно и не смог их обработать.
Пока вы ожидаете, можете использовать онлайн инструмент, например, Website Planet и проверить, работает ли сайт. Это хороший способ определить, относится ли проблема к локальной сети.
2. Попробуйте другой браузер
В случае, если сайт онлайн, однако вы всё равно видите ответ 504, попробуйте сменить свой браузер на другой. Очистите кэш браузера или воспользуйтесь режимом инкогнито, это тоже может помочь определить, связана ли причина проблемы с браузером.
3. Очистите кэш DNS
Ошибка 504 gateway time-out иногда может быть результатом некорректного или устаревшего кэша DNS, но его несложно очистить. Способ очистки зависит от вашей операционной системы. Вот руководство как очистить кэш DNS в ОС Windows, Linux и Mac OS.
Временно переключите DNS сервера на Google Public DNS, это поможет определить возник ли код состояния HTTP по причине DNS. Однако мы рекомендуем этот вариант для более опытных пользователей.
4. Проверьте на разных устройствах
Попробуйте загрузить сайт на разных компьютерах, в разных сетях или на мобильных устройствах. Если ничего из выше перечисленного не помогло исправить ошибку 504 gateway time-out, этот шаг поможет вам определить, проблема находится на стороне сервера или имеет локальный характер.
5. Посмотрите журнал ошибок
Ошибка 504 gateway timeout может также быть вызвана недавними изменениями или обновлениями на сайте. Самый быстрый способ проверить это – посмотреть журнал ошибок (англ.) для поиска подсказок. Пользователи WordPress могут включить логирование ошибок добавлением таких строк в файл wp-config.php:
Теперь все возникающие варианты ошибок будут появляться в файле wp-contents/debug.log.
6. Проверьте плагины
В процессе поиска причины ошибки 504 gateway time-out рекомендуется обратить внимание на плагины и расширения вашего сайта. В WordPress причиной ответа 504 могут быть плагины, относящиеся к кэшированию. Старые или несовместимые плагины также могут вызвать проблему. Временное отключение всех плагинов даст вам понять стоит ли копать дальше в этом направлении.
Для отключения всех плагинов WordPress перейдите в каталог wp-content, дайте каталогу plugins другое имя.
Если ваш сайт стал работать хорошо после отключения всех плагинов, то следующим шагом будет обнаружение того плагина, который мог привести к появлению ошибки HTTP 504. Верните каталогу plugins его исходное название и теперь по очереди пробуйте отключить каждый плагин.
7. Проверьте CDN
Если вы используете CDN для более быстрого получения контента, то обязательно проверьте всё ли в порядке с этой стороны. Самый распространённый случай – это CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS. При его использовании вы можете столкнуться в двумя видами ошибки 504 gateway timeout.
Эта версия ошибки 504 появляется, когда проблема возникла на стороне CloudFlare. Самым лучшим решением будет связаться с поддержкой CloudFlare или отключить сервис. Однако, если вы его отключите, скорее всего, вам придётся ждать несколько часов пока изменения DNS распространятся.
Версия, показанная выше означает, что проблема возникла на стороне хостинг-провайдера.
8. Измените настройки сервера
Если вы используете VPS-хостинг, то есть ещё несколько дополнительных моментов, которые вы можете попробовать для исправления ошибки 504 gateway timeout. Они будут заключаться в изменении настроек сервера и увеличении лимитов некоторых ресурсов.
Apache
Пользователи Apache могут увеличить значение timeout по умолчанию в файле httpd.conf. Например:
Также может помочь, если вы увеличите значение лимита max_execution_time в php.ini:
Сохраните изменения и перезапустите apache, после чего проверьте. Если причиной ошибки было недостаточное значение таймаута запроса, код 504 должен исчезнуть.
Nginx
Если ваш VPS использует Nginx, попробуйте увеличить такие параметры в файле /etc/nginx/conf.d/timeout.conf:
Также рекомендуется увеличить max_execution_time в php.ini:
После сохранения изменений перезапустить Nginx и попробуйте ещё раз открыть свой сайт.
9. Свяжитесь со службой поддержки
В случае, если ничего из вышеперечисленного не помогло устранить ошибку 504 gateway time-out, рекомендуется обратиться в службу поддержки вашего хостинга. Постарайтесь описать, какие шаги вы проделали для выявления причины ошибки и её устранения и предоставьте как можно больше информации, это значительно ускорит процесс.
Выводы
В этом руководстве мы рассмотрели общие шаги для решения проблемы 504 gateway time-out. Если у вас есть свои хитрости, подсказки или дополнительные решения для устранения этого кода состояния HTTP, дайте нам знать в комментариях!
Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.