Как избежать ошибку 504 Gateway Time-out?

Как избежать ошибку 504 Gateway Time-out? Хостинг

Чтобы на веб-странице появился контент, браузер должен получить от сервера, на котором расположен сайт, необходимые данные. Когда на устройстве пользователя, на веб-сервере или на другом промежуточном узле (например, прокси) возникают неполадки, вместо содержимого сайта в браузере появляется страница с ошибкой. Для устранения сбоя, необходимо знать, на чьей стороне он произошел и по какой причине. Понять, что является источником проблемы, помогает цифровой код ошибки. Если он имеет формат 5xx, значит, сбой происходит на стороне сервера. Разбираем в статье ошибку 504 на сайте и способы ее устранения.

The 504 Gateway Timeout error is an HTTP status code that means that one server didn’t receive a timely response from another server that it was accessing while attempting to load the web page or fill another request by the browser.

In other words, 504 errors usually indicate that a different computer, one that the website you’re getting the message on doesn’t control but relies on, isn’t communicating with it quickly enough.

Lifewire / Ashley Nicole DeLeon

Are You the Web Manager? See the Fixing 504 Errors on Your Own Site section further down the page for some things to consider on your end.

Веб-сервер Nginx часто работает не только в качестве самого веб-сервера для отдачи контента, но и в качестве прокси, когда он вступает только посредником. Такая ситуация наблюдается намного чаще, чем можно было бы ожидать. Например, при работе с php-fpm и другими модулями динамических языков.

Именно в таком режиме может наблюдаться ошибка 504 gateway time out Nginx. В нашей сегодняшней статье мы попытаемся разобраться почему она возникает и как с ней бороться. Разберем несколько способов решения и причин.

Как избежать ошибку 504 Gateway Time-out?

Как я уже сказал, такая ошибка возникает, когда сервер Nginx работает в режиме прокси. Например, при использовании php-fpm или Apache. Дословно, она означает, что превышено время ожидания ответа от сервера. В нашем случае, превышено время ожидания ответа от php-fpm. Рассмотрим несколько причин такого поведения:

  • Скрипт PHP или на другом языке полностью завис и уже не вернет никакого ответа;
  • Скрипт работает очень долго, но в Nginx настроен интервал на сброс соединения если целевой сервер не ответил на запрос за отведенный строк;
  • Сервер перегружен и не успевает обслужить всех клиентов, вернуть ответы на все запросы Nginx;

Дальше рассмотрим что можно сделать если вы встретились с ошибкой 504 gateway time out Nginx.

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

Сообщения, кодирующиеся в формате 5хх, говорят о проблеме на стороне сервера, например, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами. Ошибка 504 Gateway Time Out не является распространенной, но это не значит, что на нее не стоит обращать внимания, особенно владельцу сайта. Рассмотрим некоторые причины возникновения данной ошибки и способы ее устранения как на стороне обычного посетителя, так и администратором веб-ресурса.

Ошибка 504 Gateway Time Out – это код состояния HTTP, который появляется, когда в течение заданного периода времени один сервер не получает своевременный ответ от другого сервера, который действует как шлюз или прокси.

Описания ошибки могут иметь различную форму:

  • 504 Gateway Timeout nginx
  • Gateway Timeout Error
  • 504 Gateway Time-out – The server didn’t respond in time
  • HTTP Error 504 – Gateway Timeout

Наличие дополнительного словесного описания помогает конкретизировать причину возникновения сбоя.

Содержание
  1. Производительный хостинг в подарок при заказе лицензии 1С-Битрикс
  2. Вот как можно исправить ошибку 504 Gateway Timeout
  3. Как вы могли увидеть ошибку 504
  4. Причины ошибок 504 Gateway Timeout
  5. Как исправить ошибку времени ожидания шлюза 504
  6. Исправление 504 ошибок на вашем собственном сайте
  7. Больше способов увидеть ошибку 504
  8. Ошибки типа 504 Gateway Timeout
  9. Как исправить 504 gateway time out Nginx?
  10. Как исправить ошибку 504 владельцу сайта
  11. Долго обрабатывается скрипт
  12. Проблемы с CDN
  13. Выросла нагрузка на один из серверов
  14. Проверка службы DNS
  15. Спам, вирусы и DDoS-атаки
  16. Проблемы с плагинами в CMS
  17. Что значит ошибка 504 и когда она появляется
  18. Как решить проблему, если вы — пользователь
  19. Что делать посетителю сайта при возникновении ошибки 504
  20. Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса
  21. Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out
  22. Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта
  23. Заключение
  24. Выводы
  25. Об авторе

Производительный хостинг в подарок при заказе лицензии 1С-Битрикс

Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год хостинга – специально для сайтов на 1С-Битрикс.

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

О причинах появления ошибки.

Одной из основных причин является возрастание нагрузки на сайт,  при которой количество запросов к серверу apache возрастает  до критического значения и новые запросы стают в очередь. В связи с этим время на поступление к обработке запросов (которые попали в очередь)   больше, чем установлено в конфигурации сервера. Запрос не успевает попасть на  обработку и соединение сбрасывается.

Для решения проблемы:

1. Увеличить ресурс сервера, оперативную память, процессор. В большинстве случаев решает проблему, но часто необходимо предпринимать с решением 3.2. Увеличить количество одновременных процессов apache и лимит времени в конфигурации nginx. Не рекомендовано предпринимать без 1 и 3 пунктов, возможны еще большие проблемы.3. Провести оптимизацию работы скриптов. Возможно, как самостоятельное решение.4. В конфигурации nginx увеличить время ожидания
исполнения скрипта:

proxy_read_timeout 120;
proxy_connect_timeout 120;

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

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

Можно увеличить значение PHP max_execution_time  или оптимизировать работу скрипта.

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

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

Как избежать ошибку 504 Gateway Time-out?

Всем привет, задался таким вопросом, я начал писать бота на php, мне нужно чтоб при запуске скрипта в браузере скрипт выполнялся не малый промежуток времени, допустим это минут 5-10, но выдаст ошибку 504 Gateway Time-out на секундах 30.
Мне не нужна оптимизация кода, мне нужно избежать ошибку 504.
Возможно я не правильно пишу бота ?
Можно ли сделать чтоб скрипт выполнялся столько сколько ему нужно ?

Судя по 504 Gateway Time-out у вас перед PHP стоит nginx. Если это так — добавьте в конфигурацию сайта настройку для ожидания времени ответа upstream. Если у вас используется FastCGI то:fastcgi_read_timeout 30m;
если используется проксирование, то:proxy_read_timeout 30m;

А вообще такие скрипты запускают не через веб-сервер, а из консоли, устанавливая при этом set_time_limit(0);

  • есть ограничение в максимальном времени ответа, например не более 20 минут ?
  • Со стороны nginx — вряд ли, но нужно помнить что TCP соединения не поддерживаются живыми автоматически, поэтому реальная ситуация может отличаться в зависимости от деталей вашей конфигурации
  • Можете обьяснить эту часть «но нужно помнить что TCP соединения не поддерживаются живыми автоматически» не особо понял, пожалуйста ?
  • При запросе скрипта из браузера на самом деле создаётся соединение «браузер-nginx» и, возможно, соединение «nginx-upstream» в зависимости от того какова у вас конфигурация. Если второго соединения (nginx-upstream) может и не быть (к примеру там подключение через unix socket, а не через tcp) то соединение с браузером есть и никто не будет гонять там дополнительные пакеты чтобы поддержать его в живом состоянии, оно просто будет закрыто через какое-то время, причём не обязательно по инициативе nginx. В итоге если вы хотите запускать что-то что работает долго, но отдаёт результат в браузер, а не просто использовать браузер для запуска удалённого скрипта — то реальная схема несколько другая. Если же вы просто хотите запускать скрипт на сервере — то лучше делать это из консоли, а не через браузер.
  • Dmitry, вам же будет легче, если вы примете за аксиому, что ответа от скрипта, выполняющегося дольше 5 минут, никто никогда не дождется. И построите решение, которое это учитывает.
  • Ну то есть как, скрипт просто обрабатывается, по сути его нужно просто запустить и чтоб он работал, сейчас подвох в том, что пол кода написано в веб интерфейсе, и переписывать под консоль времени нету.
    Как я понимаю если я даже настрою сервер там допустим на отклик в течении 5 минут, браузер сам может отключить, тем самым все сорвав и это уже настроить нельзя ? Правильно я понимаю ?
  • Dmitry да, правильно. вы, конечно, можете закинуть в браузер скрипт который будет поддерживать соединение, но в целом это решение сложнее чем просто запускать скрипт из консоли. при условии что ваш скрипт использует какой-нибудь современный framework — переделать его на запуск из консоли в целом будет весьма тривиальной задачей.
  • Да проблема в том что свой каркас MVC и переносить на знаменитый фрейм будет геморно
  • Можете толкнуть в сторону, где копать информацию на счет того чтоб браузер поддерживал соединение ?
  • Сочувствую 🙂 Тогда как вариант — делать отдельный shell скрипт с каким-нибудь curl’ом который будет дёргать ваш скрипт и в нём уже ставить необходимые timeout’ы. Вот здесь можно посмотреть их описание. Так вы хотя бы обеспечите управляемость окружения в условиях специфики вашего проекта.
  • А можно узнать на каком времени google chrome оборвет связь ?
  • Timeout браузера в общем случае узнать нельзя.
    По поводу реализации — копать в сторону идеи о том что будет 3 компонента:реальный долгоиграющий скрипт, как-то отдающий информацию о своём состояниисерверный скрипт который может читать это состояниеклиенский скрипт в браузере который будет запрашивать состояние и, возможно, подавать управляющие команды.
    Клиентский скрипт (3) загружается в браузер и начинает время от времени запрашивать статус долгоиграющего скрипта (1) у сервера. На сервере отвечает скрипт (2) который читает актуальный статус долгоиграющего скрипта (1) и информирует о нём клиента (3).
  • реальный долгоиграющий скрипт, как-то отдающий информацию о своём состоянии
  • серверный скрипт который может читать это состояние
  • клиенский скрипт в браузере который будет запрашивать состояние и, возможно, подавать управляющие команды.
Читайте также:  Оптимизируйте управление сетью с помощью программных решений Mikrotik

Ответы на вопрос

Как избежать ошибку 504 Gateway Time-out?

Самое простое — увеличить время ожидания на сервере до необходимого.

26 апр. 2023, в 11:02

500 руб./за проект

26 апр. 2023, в 10:19

1000 руб./в час

26 апр. 2023, в 10:15

100000 руб./за проект

Не импортируется mysql через phpmyadmin

Code: Select all

wget http://c.vestacp.com/0.9.8/rhel/httpd-long.conf -O /etc/httpd/conf/httpd.conf
wget http://c.vestacp.com/0.9.8/rhel/nginx-long.conf -O /etc/nginx/nginx.conf
service httpd restart
service nginx restart

Если необходимость загрузки таких дампов возникает редко, то верните предыдущую конфигруацию

wget http://c.vestacp.com/0.9.8/rhel/httpd.conf -O /etc/httpd/conf/httpd.conf
wget http://c.vestacp.com/0.9.8/rhel/nginx.conf -O /etc/nginx/nginx.conf
service httpd restart
service nginx restart

Попробовал, не помогает. Даже при попытке импорта базы в 3кб возникает такая ошибка:(

Ошибка возникла даже при использовании конфигурации с 5-минтуными таймаутами? Посмотрите в error лог домена, там должны быть детали.

skid wrote:Ошибка возникла даже при использовании конфигурации с 5-минтуными таймаутами? Посмотрите в error лог домена, там должны быть детали.

Попробуйте еще увеличить max_input_time в /etc/php.ini и перезапустите апач.

yariksat wrote: ↑

Timeout у nginx. Вообще, все подобные операции (в первую очередь, импорт больших дампов) лучше делать через консоль.

grayfolk wrote: ↑

Вроде как крутил уже и это,и не только это.
Выбираю таблицы и жму на оптимизацию таблиц.Во время оптимизации и вылазит такое.Хоть оптимизация,хоть починка таблиц или их проверка вызывают такое.Хотя починка выполняется.Или оптимизация.
Причем раньше такого не было,и на большей БД.У меня закрадывается подозрение что как бы не после обновы.
Уже крутил все таймоуты,конфиг php-fpm и прочие.Все мимо.
Я тут читал что сама панель работает от своих сервисов.Смотрел и крутил и их.

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;

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

Вот как можно исправить ошибку 504 Gateway Timeout

Ошибка 504 Gateway Timeout – это код состояния HTTP, который означает, что один сервер не получил своевременный ответ от другого сервера, к которому он обращался, при попытке загрузить веб-страницу или заполнить другой запрос браузером.

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

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

Как вы могли увидеть ошибку 504

Отдельные веб-сайты могут настраивать отображение ошибок «тайм-аут шлюза», но вот наиболее распространенные способы, которые вы увидите:

504 Время ожидания шлюза

Время ожидания шлюза (504)

Ошибка HTTP 504 — время ожидания шлюза

Ошибка тайм-аута шлюза

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

Причины ошибок 504 Gateway Timeout

В большинстве случаев ошибка 504 Gateway Timeout означает, что любой другой сервер занимает столько времени, что его «тайм-аут», вероятно, не работает или работает неправильно.

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

Тем не менее, есть несколько вещей, которые вы можете попробовать, на всякий случай:

Как исправить ошибку времени ожидания шлюза 504

  • Повторите попытку веб-страницы, нажав кнопку обновления/перезагрузки, нажав F5 или еще раз попробовав URL из адресной строки.

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

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

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

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

    Смотрите Proxy.org для обновления, уважаемый список прокси-серверов, которые вы можете выбрать. Есть также несколько сайтов, которые предлагают бесплатные загрузки списка прокси-серверов.

    Большинство компьютеров не имеют настройки прокси-сервера вообще, поэтому, если у вас пусто, не беспокойтесь, просто пропустите этот шаг.

  • Измените DNS-серверы, особенно если все устройства в вашей сети получают одинаковую ошибку. Возможно, ошибка 504 Gateway Timeout, которую вы видите, вызвана проблемой с DNS-серверами, которые вы используете.

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

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

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

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

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

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

Исправление 504 ошибок на вашем собственном сайте

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

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

В частности, в WordPress сообщения 504: Gateway Timeout иногда возникают из-за поврежденных баз данных. Установите WP-DBManager и попробуйте функцию «Восстановить БД», затем «Оптимизировать БД» и посмотрите, поможет ли это.

Кроме того, убедитесь, что ваш файл HTACCESS правильный, особенно если вы только что переустановили WordPress.

Наконец, рассмотрите возможность обращения в свою хостинговую компанию. Возможно, ошибка 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 внутреннюю ошибку сервера, ошибку 502 Bad Gateway и ошибку 503 Service Unavailable, а также некоторые другие.

Существуют также коды состояния HTTP, которые не на стороне сервера, а вместо этого на стороне клиента , как обычно встречающаяся ошибка 404 Not Found. Также существует несколько других, все из которых вы можете увидеть на нашей странице HTTP Ошибки кода состояния.

Как исправить 504 gateway time out Nginx?

Самый первый вариант — это если вашему серверу, php-fpm или apache не хватает ресурсов системы, например, памяти или процессора. Вы можете посмотреть свободную память с помощью команды free:

Как избежать ошибку 504 Gateway Time-out?

Нагрузку на процессор можно узнать командой htop:

Как избежать ошибку 504 Gateway Time-out?

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

Второй вариант — это если так и было запланировано, чтобы скрипт работал долго. В таком случае нужно настроить Nginx, чтобы он дождался ответа от Apache или php-fpm. Для решения проблемы в случае с php-fpm нужно только добавить две строчки в блок настройки fastgci:

fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

Как избежать ошибку 504 Gateway Time-out?

Здесь 300 означает 300 секунд, для большинства скриптов, этого будет вполне достаточно, но вы можете еще больше увеличить значение если это нужно. Также ошибка 504 может возникать, когда Nginx используется в качестве прокси для Apache или любого другого веб-сервера, тогда нужно еще настроить время ожидания для прокси. Добавьте эти строки в секцию server:

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

Тут уже мы задаем таймаут 600 секунд для различных видов действий — подключения, отправки данных, чтения данных и так далее. После завершения настройки Nginx стоит перезапустить:

sudo systemctl restart nginx

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

fgrep -i » 504 » /var/log/nginx/access.log

fgrep -i » 504 » /var/log/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

Как избежать ошибку 504 Gateway Time-out?

Здесь 5 секунд, означает, что в лог файл будут добавляться скрипты, которые выполняются дольше пяти секунд. Вы можете менять это значение по своему усмотрению. В логе вы сможете увидеть не только сами скрипты, но и трассировку методов, которые привели к проблемам:

Как избежать ошибку 504 Gateway Time-out?

Дальше останется только разобраться что с этим делать, например, оптимизировать скрипты или отключить лишние плагины.

Very heavy traffic might result in your server serving a 504 error, even though a 503 would probably be a bit more accurate.

Also, make sure your HTACCESS file is correct, especially if you have just reinstalled WordPress.

Finally, consider contacting your hosting company. It’s possible that the 504 error that your website is returning is due to an issue on their end that they’ll need to resolve.

Как исправить ошибку 504 владельцу сайта

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

Долго обрабатывается скрипт

Если скрипт тяжелый, сервер может не успеть полностью его обработать до появления ошибки. Лучшим решением проблемы будет облегчение скрипта или его замена. Когда это невозможно, увеличивают период ожидания сервера. Лимит времени, за которое скрипт должен быть отработан, устанавливается через директиву «max_execution_time» в файле «php.ini». По умолчанию он составляет 30 секунд. Чтобы он стал больше, необходимо открыть файл и подставить в строку «max_execution_time = 30» новую допустимую продолжительность операции. Кроме того, поменять настройки можно в Nginx и Apache.

Нестандартные параметры времени ожидания сервера могут понадобиться, если вы используете Nginx в качестве прокси-сервера для Apache. Изменение времени выполнения скрипта на веб-сервере производится в файле «nginx.conf». Порядок действий:

  • Подключение к серверу по Secure Shell (протоколу для удаленного управления операционной системой).
  • Ввод команды «sudo nano/etc/nginx/nginx.conf» для запуска файла.
  • Редактирование блока server: увеличение времени до наступления тайм-аута с 300 секунд до 600:
  • Перезагрузка веб-сервера командой «service nginx reload».

Коррекцию файлов «php.ini» и «nginx.conf» лучше проводить совместно. В обоих документах необходимо указать одинаковое время обработки запроса.

При использовании Apache время обработки запроса редактируется через «httpd.conf». Что необходимо сделать:

  • Открыть файл.
  • Сохранить корректировки и заново запустить сервер.

Проблемы с CDN

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

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

Выросла нагрузка на один из серверов

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

В компании «Интернет Хостинг Центр» клиенты могут арендовать в России с бесплатной защитой от DDoS на всех тарифах. Выделенный IP и техподдержка входят в стоимость.

Проверка службы DNS

Проблемы с DNS могут возникнуть на компьютере пользователя. Для их устранения на ПК вызывается командная строка операционной системы, где вводится специальная команда для очистки DNS-кэша, в Windows — это «ipconfig /flushdns».

Спам, вирусы и DDoS-атаки

Перегрузка сервера может быть вызвана не только возросшим интересом пользователей к вашим товарам и услугам, но и менее позитивными причинами — спамом, вирусами и DDoS-атаками. Для защиты веб-ресурса от вредоносных программ и действий хакеров, необходимо предпринять несколько профилактических мер:

  • проверить наличие антивируса в административной панели хостинга;
  • включить защиту от DDoS;
  • подключить анти-спам плагины в CMS сайта;
  • установить SSL/TLS;
  • защитить формы обратной связи с помощью капчи;
  • предотвратить публикацию комментариев со ссылками на вредоносное ПО, подключив модерирование контента и так далее.

Проблемы с плагинами в CMS

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

Most of the time, a 504 Gateway Timeout error means that whatever other server is taking so long that it’s «timing out,» is probably down or not working properly.

Since this error is usually a network error between servers on the internet or an issue with an actual server, the problem probably is not with your computer, device, or internet connection.

That said, there are a few things you can try, just in case:

Что значит ошибка 504 и когда она появляется

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

Изображение от Freepik.

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

A number of error messages are similar to the 504 Gateway Timeout error because they all occur on the server side. A few include the 500 Internal Server Error, the 502 Bad Gateway error, and the 503 Service Unavailable error, among a few others.

There are also HTTP status codes that aren’t server-side, but instead client-side, like the commonly seen 404 Not Found error. Several others exist as well, all of which you can see in our HTTP Status Code Errors page.

Thanks for letting us know!

Get the Latest Tech News Delivered Every Day

  • Retry the web page by selecting the refresh/reload button, pressing F5, or trying the URL from the address bar again.

    Even though the 504 Gateway Timeout error is reporting an error outside of your control, it might only be temporary.

  • Restart all of your network devices. Temporary problems with your modem, router, switches, or other networking hardware could be causing the 504 Gateway Timeout issue you’re seeing. Just restarting these devices could help.
    While the order you turn off these devices isn’t important, the order that you turn them back on is. In general, you want to turn devices on from the outside-in. If you’re not sure what that means, check out the link at the beginning of this step for a complete tutorial.
  • Check the proxy server settings in your browser or application and make sure they’re correct. Incorrect proxy settings can cause 504 errors.
    Windows 10 Proxy Settings.
    Most computers don’t have proxy settings at all, so if yours are empty, just skip this step.
    See Proxy.org for an updated, respected list of proxy servers that you can choose from.
  • Change your DNS servers, especially if all the devices on your network are getting the same error. It’s possible that the 504 Gateway Timeout error you’re seeing is caused by an issue with the DNS servers you happen to be using.
    Unless you’ve previously changed them, the DNS servers you have configured right now are probably the ones automatically assigned by your ISP. Others are also available to choose from. See our Free & Public DNS Servers list for options.
  • Most major sites have social networking accounts they use to help support their services and some even have telephone numbers and email addresses.
  • How to Talk to Tech Support
  • Come back later. You’ve exhausted all your options at this point and the 504 Gateway Timeout error is either in the hands of the website or your ISP to correct. Check back with the site regularly. No doubt it’ll start working again soon.

Как решить проблему, если вы — пользователь

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

  • обновите страницу, заново указав URL в адресной строке и нажав кнопку ввода (Enter);
  • откройте сайт в другом браузере, если в нем сбой не повторится, обновите браузер с ошибкой до последней версии;
  • запустите веб-ресурс на другом устройстве, чтобы проверить, не связаны ли проблемы с программным обеспечением вашего компьютера;
  • очистите файлы кэша и cookies, чтобы избавиться от ошибок, накопленных браузером за длительное время использования;
  • перезагрузите роутер, чтобы устранить конфликт между обновленным ПО провайдера и вашим устройством;
  • очистите кэш DNS через командную строку ОС.

Что делать посетителю сайта при возникновении ошибки 504

Итак, вы столкнулись с появлением на экране сообщения «error 504». Не спешите уходить с сайта, ведь возникновение сбоя может говорить о неправильной работе вашего браузера или даже наличии более серьезных проблем на уровне пользовательского софта. Попробуйте произвести довольно простые действия, чтобы убедиться, что с вашим программным обеспечением и настройками все в порядке.

  • Перезагрузите проблемную страницу или текущий браузер. Если проблема устранилась и не повторяется вновь, особенно при посещении других сайтов, о ней можно просто забыть. При регулярном возникновении однотипных ошибок во время посещения разных ресурсов стоит покопаться в настройках собственного ПО поглубже.
  • Зайдите на тот же самый сайт, где возникла ошибка сервера 504, используя альтернативный браузер. В случае, когда страница во время тестирования открылась корректно, обновите браузер, в котором случился сбой, до последней версии.
  • Проверьте, как открываются страницы этого же сайта с другого компьютера или смартфона. Это позволит вам понять, не связано ли появление ошибки 504 с ПО конкретного устройства.
  • При регулярном появлении HTTP ошибок, в т.ч. с кодом 504, очистите кэш браузера, удалите файлы cookies. Со временем в любом браузере накапливается много «мусора». Произведя очистку, вы поможете программе работать более корректно и даже быстрее.
  • Произведите сброс настроек роутера или модема, отключив оборудование на некоторое время от сети. Данная операция вряд ли приведет к устранению ошибки 504, но может улучшить качество интернет-соединения. Провайдеры регулярно вносят изменения в настройки собственного софта, обновляют его. Иногда это приводит к конфликту в корректном взаимодействии пользовательского оборудования и серверов оператора. Перезагрузка устройства по питанию в большинстве случаев решает такие проблемы.
  • Очистите кэш DNS. Данная операция кажется сложной для обычного пользователя, но на деле выполнить ее достаточно легко. Способ очистки зависит от вашей операционной системы, найдите соответствующий мануал в интернете.
  • Для опытных пользователей подойдет рекомендация временно переключить DNS-сервер на Google Public DNS, что как минимум поможет определить, возник ли ошибочный код состояния HTTP по причине DNS проблемы.

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Individual websites are allowed to customize how they show «gateway timeout» errors, but here are the most common ways you’ll see one spelled out:

  • 504 Gateway Timeout
  • 504 ERROR
  • Gateway Timeout (504)
  • HTTP Error 504 — Gateway Timeout
  • Gateway Timeout Error

A 504 Gateway Timeout error shows up inside the internet browser window, just like normal web pages do. There might be a site’s familiar headers and footers and a nice, English message on the page, or it could show up on an all-white page with a big 504 at the top. It’s all the same message, regardless of how the website happens to show it.

A Gateway Timeout error, when received in Windows Update, generates a 0x80244023 error code or the message WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT.

In Windows-based programs that inherently access the internet, a 504 error might show up in a small dialog box or window with the HTTP_STATUS_GATEWAY_TIMEOUT error and/or with a The request was timed out waiting for a gateway message.

A less common 504 error is Gateway Time-out: The proxy server did not receive a timely response from the upstream server, but the troubleshooting (above) remains the same.

Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса

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

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

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

Почти все ошибки с кодом 5хх, возникающие из-за невозможности обработки определенного количества запросов, поступающих на сервер, решаются методом апгрейда железа (использованием высокопроизводительного хостинга) либо оптимизацией работы программного обеспечения. Второй способ зависит от вида движка, на котором создан конкретный сайт. При использовании условно-бесплатных программ (WordPress, OpeneCart и других) все проблемы придется решать на уровне администрирования, с привлечением конкретного веб-программиста, разработавшего данный сайт. Если баги возникают на платных платформах (1С-Битрикс, UMI.CMS, NetCat CMS), напишите об ошибке 504 Gateway Time Out в техподдержку разработчика. Отправить сообщение о проблеме следует и разработчикам платных скриптов, если они установлены на вашем сайте, и вы считаете, что сбои возникают по причине их некорректного исполнения.

Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out

  • Резкий скачок нагрузки на сайт вследствие поступления большого количества внешних запросов, вызванного DDoS-атаками или действиями вирусного ПО, пиковым посещением сайта, например, в момент проведения различных акций в интернет-магазине, или единовременной загрузкой на сайт большого объема контента (импорт информации из CSV- или XML-файлов).
  • Некорректная работа скриптов, плагинов и дополнений, конфликтующих как между собой, так и внутри.
  • Превышение лимита доступных ресурсов при использовании виртуального хостинга.

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

Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта

Ошибка 504 Gateway Time Out может быть вызвана недавними изменениями или обновлениями на сайте. Если после отката к состоянию, предшествующему изменениям, баг исчез, следует найти конкретное действие, повлекшее возникновение ошибки. Для этого необходимо проверить журнал ошибок соответствующей CMS. Пользователи WordPress могут включить журналирование ошибок в файле wp-config.php добавлением следующих строк:

define( ‘wp_debug’, true );

define( ‘wp_debug_log’, true );

define( ‘wp_debug_display’, false )

Все возникающие варианты ошибок будут записаны в файле wp-contents/debug.log.

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

Часто ошибку 504 можно видеть на серверах, где используется VPS-хостинг и установлен Nginx в качестве фронтенда и Apache в качестве бэкенда. Для устранения проблемы в Apache можно увеличить значение timeout по умолчанию в файле httpd.conf:

Также увеличить лимит в max_execution_time в php.ini:

После внесения изменений следует перезапустить Apache. Ошибка 504 Gateway Time Out должна исчезнуть.

Аналогичным образом проблема с появлением ошибки HTTP 504 решается пользователями Nginx. Попробуйте увеличить такие параметры в файле /etc/nginx/conf.d/timeout.conf:

proxy_connect_timeout 600;

proxy_send_timeout 600;

proxy_read_timeout 600;

send_timeout 600;

Также рекомендуется увеличить max_execution_time в php.ini:

Далее перезапустите Nginx и откройте сайт.

Более простым решением устранения данной проблемы является использование панели управления сервером.

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

Например, в бесплатной панели управления Vesta Control Panel достаточно внести изменения в раздел «Сервер» и навсегда забыть о возможности возникновения ошибок на сайте.

Как избежать ошибку 504 Gateway Time-out?

Как избежать ошибку 504 Gateway Time-out?

Аналогичным способом проблема устраняется и при использовании альтернативных панелей управления хостингом – Ajenti, CentOS Web Panel, ISPmanager и других.

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

Заключение

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

В данной статье мы рассмотрели основные причины возникновения ошибки HTTP 504 Gateway Timeout и популярные способы устранения неполадки. Уверен, некоторые администраторы веб-ресурсов сталкивались с подобными проблемами, выходящими за рамки приведенных примеров и рекомендаций.

Буду благодарен, если вы поделитесь своим опытом в комментариях.

Выводы

В этой статье мы рассмотрели как исправить 504 gateway time out Nginx 1.2 7, а также почему может возникнуть эта ошибка. Надеюсь, эта информация была полезной для вас.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Читайте также:  Откройте для себя лучшие репозитории Linux CentOS для повышения производительности
Оцените статью
Хостинги