Что значит ошибка «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 и как его исправить
Когда у вас возникают проблемы с доступом к определенным веб-сайтам, ваш браузер часто отображает Код состояния HTTP это поможет вам разобраться в проблеме. Эти коды бывают разных типов и вариаций, каждый из которых имеет свое индивидуальное значение и решения. С вероятностью 90% вы хотя бы раз столкнулись с ошибкой 504 Gateway Timeout во время серфинга в Интернете.
Что означает тайм-аут 504 Gateway Timeout? Ошибка 504 Gateway Timeout обозначается по-разному на разных веб-сайтах и в браузерах, но эти варианты означают одно и то же. Таким образом, если определенный веб-сайт выдает ошибку «Тайм-аут шлюза (504)», в то время как другие отображают свою как «Ошибка HTTP 504», «Домен слишком долго отвечает» или «Тайм-аут шлюза», они указывают на ту же проблему.
В этом руководстве мы расскажем вам все, что вам нужно знать об ошибке тайм-аута шлюза 504 — то есть, причины и решения.
Что означает ошибка тайм-аута шлюза 504?
Многое происходит за кулисами, когда вы посещаете веб-сайт или щелкаете ссылку в браузере. Обычно это выполняется следующим образом:
Если ваш браузер отображает ошибку 504 Gateway Timeout вместо функциональной веб-страницы, это означает, что на шаге 4 возникла проблема. То есть серверы веб-сайта не смогли обработать запрос вашего браузера достаточно быстро.
Это происходит, когда сервер шлюза веб-сайта (или первичный сервер) не получает своевременный ответ от вторичного сервера (также называемого вышестоящим сервером). Итак, что именно вызывает эту задержку в подключении к серверу? Чтобы узнать это, перейдите к следующему разделу.
Что вызывает ошибку тайм-аута шлюза 504?
Часто ошибка 504 Gateway Timeout возникает из-за проблем с подключением к серверу на стороне веб-сайта; возможно, один (или все) серверы вышли из строя или временно перегружены и не могут обрабатывать новые запросы. Эта ошибка также может возникнуть, если веб-сайт недавно переехал на новый IP-адрес (служба хостинга) или его конфигурация брандмауэра ошибочно блокирует безопасный контент.
Сбои на стороне сервера обычно являются причиной ошибки 504 Gateway Timeout, поэтому администратор веб-сайта находится в лучшем положении, чтобы решить проблему. Тем не менее, вам также следует устранить неполадки на вашем устройстве. Это связано с тем, что ошибка тайм-аута 504 также может возникать из-за проблем с вашим устройством или настройками сети, хотя такая возможность встречается довольно редко.
Как исправить ошибку тайм-аута шлюза 504
Мы собрали несколько возможных методов устранения неполадок, которые помогут устранить ошибку, если проблема исходит от вас. Протестируйте их и посмотрите, работают ли они на вас.
1. Обновите веб-страницу.
Как упоминалось ранее, веб-сайт может отображать код ошибки 504, если его серверы перегружены — возможно, из-за внезапного всплеска трафика. Если это причина ошибки, перезагрузка веб-страницы может вернуть все в нормальное состояние. Щелкните значок круглой стрелки рядом с адресной строкой или нажмите F5, чтобы перезагрузить страницу.
Вы также можете перезагрузить страницу в любом браузере с помощью сочетания клавиш Control + R (для Windows) или Command + R (для Mac).
2. Перезагрузите маршрутизатор или сетевое устройство.
Перед перезагрузкой сетевого устройства подключите компьютер к альтернативной сети, если таковая имеется. Если вы можете получить доступ к веб-странице в другой сети, проблема заключается в беспроводном маршрутизаторе или интернет-модеме.
Перезагрузите сетевое устройство, повторно подключите компьютер к сети и перезагрузите веб-страницу. Если вы все еще получаете ошибку 504 Gateway Timeout, рассмотрите перезагрузка роутера или модем по умолчанию.
3. Проверьте настройки прокси.
Если вы используете прокси на своем компьютере, убедитесь, что настройки сервера верны и правильно настроены. Выберите «Настройки»> «Сеть и Интернет»> «Прокси-сервер» (для Windows) или «Системные настройки»> «Сеть»> «Дополнительно»> «Прокси» (для macOS), чтобы проверить наличие ручной настройки прокси-сервера.
Отключите прокси и обновите затронутый веб-сайт. Если ваш браузер загружает веб-страницу, вероятно, проблема в конфигурации вашего прокси-сервера.
4. Измените DNS-серверы.
Большинство компьютеров используют серверы доменных имен (DNS) по умолчанию, назначенные поставщиком услуг Интернета (ISP). Эти серверы, назначенные интернет-провайдером, иногда бывают ненадежными и вызывают такие проблемы, как медленное соединение. Если уязвимая веб-страница успешно загружается на другом устройстве, измените поставщика DNS вашего ПК на любой бесплатный и надежный публичный сервер с быстрым временем отклика. Это может иметь большое значение.
Изменить DNS в Windows
Чтобы изменить поставщика DNS в Windows, перейдите в «Настройки»> «Сеть и Интернет»> «Статус» и нажмите «Изменить параметры адаптера».
Изменить DNS в macOS
Для пользователей Mac перейдите в Системные настройки> Сеть и нажмите кнопку «Дополнительно» в нижнем левом углу.
Перейдите на вкладку DNS и щелкните значок плюса (+) в левом углу кнопки, чтобы добавить новый DNS-сервер.
Добавьте эти Google Public DNS: 8.8.8.8 и 8.8.4.4. Нажмите ОК, чтобы продолжить, и нажмите Применить на следующей странице, чтобы сохранить изменения.
5. Очистите кеш DNS.
Когда вы посещаете веб-сайт, ваш компьютер сохраняет информацию о доменном имени веб-сайта в кеше DNS. В следующий раз, когда вы посетите веб-сайт, данные в кеше DNS быстро укажут вашему браузеру правильное направление, чтобы веб-сайт загружался быстрее.
Ошибка тайм-аута может возникнуть, если веб-сайт изменит свой IP-адрес или сервер. Это связано с тем, что кеш DNS направит ваш браузер на старый (или устаревший) IP-адрес. Вы можете решить эту проблему, очистив кеш DNS. Это побудит ваше устройство и браузер получить обновленную информацию DNS при следующем посещении веб-сайта.
Чтобы очистить кеш DNS на Mac, запустите Терминал (перейдите в Приложения> Утилиты> Терминал), вставьте команду ниже в консоль и нажмите Return.
При появлении запроса введите пароль вашего Mac и нажмите Return.
Для устройств Windows запустите командную строку (нажмите Windows + X и выберите Командная строка (администратор)), вставьте команду ниже в консоль и нажмите Enter.
Наслаждайтесь безошибочным Интернетом
Надеюсь, теперь вы знаете, что вызывает ошибку тайм-аута 504 и как вы можете попытаться исправить ее как посетитель веб-сайта. Если ошибка не исчезнет после устранения неполадок вашего компьютера и сетевых настроек, обратитесь к администратору веб-сайта; проблема, скорее всего, связана со сбоями на стороне сервера. Если ошибка появляется на всех остальных веб-сайтах, вам следует обратиться к своему интернет-провайдеру, чтобы узнать, есть ли сбой в сети.
Каким должно быть время ответа сервера?
Хороший сайт — быстрый сайт. Все интернет-ресурсы должны быть отзывчивыми, иначе они вмиг потеряют аудиторию и станут неинтересны потенциальным пользователям. Поэтому в данной статье мы говорим о том, как долго можно ждать отклик от сервера и почему важно ускорять свой сайт всеми доступными способами.
Что значит «время ожидания ответа сервера» и каким оно должно быть?
Речь идет о параметре TTFB. Эта аббревиатура расшифровывается как Time-to-first-byte, что в переводе означает «время до получения первого байта». Это тот момент времени, когда сервер отвечает на изначальный запрос клиента.
Такая проверка. Установка первоначального соединения между браузером и сайтом. Чем меньше длится процесс подключения, тем лучше. Причем как для сервера, так и для клиента. Пользователь сразу получит данные, за которыми пришел, а сайт будет на хорошем счету у поисковых машин. Важно удерживать этот показатель в пределах 400 миллисекунд. Это некий стандарт. Но если получится сократить до 100, то надо это сделать. Нижнего предела нет.
Помимо TTFB (времени ответа сервера), есть и «время дозагрузки контента». Часть советов из этой статьи помогут сократить и его тоже. Сразу замечу, что это субъективный параметр, зависящий от десятка критериев, влияющих на конечный результат. Скорость может сократиться или увеличиться от расположения дата-центра, где хранятся файлы, относительно клиента, до мощности устройства, с которого заходят на страницу.
Почему этот параметр так важен для оптимизации сайта?
Как я уже сказал выше, TTFB полезен и людям, и «машинам».
С человеческим и поведенческим факторами все предельно логично:
С технической точки зрения все менее логично, но не менее важно:
Почему возрастает время ответа от сервера?
Есть шесть направлений, в которых надо размышлять. Проблемы таятся в:
Далее подробно рассмотрим, какое влияние они оказывают на сервер и почему.
Apache
Эта технология не подходит для работы с большим количеством запросов. Архитектура Apache не соответствует этим задачам. Из-за этого некоторые веб-мастера страдают, при этом на осознание причин появления проблем уходит много времени.
Apache может сильно замедлять работу сайта даже при передаче исключительно статических файлов. Возникают заметные задержки ответа сервера.
Отсутствие модулей кэширования
Вебмастера путают понятия кэширования исполняемого кода с кэшированием других элементов. Используют неправильные инструменты или вовсе не используют, поэтому и теряют драгоценные миллисекунды, уходящие на время ответа сервера и загрузку сайта.
Некорректно настроенная база данных
Распространенная проблема — база данных с неправильно настроенной таблицей. Почти 50% задержек, возникающих при работе ресурса, складываются из проблемных индексов, отсутствия кэширования популярных результатов и кривой структуры запросов в базе данных.
Случается так, что файл базы данных разрастается до неадекватных размеров, набирает кучу ненужной информации и тормозит сайт в целом, повышая время загрузки до критических значений. Устранение проблем может увеличить скорость работы раз в 10 минимум.
Сложная логика обработки данных
Чем мудренее код, тем медленнее он работает. Даже при наличии грамотно выстроенной базы данных могут возникнуть задержки, если скрипты слишком запутанные и выполняют кучу лишних операций. Надо гонять программиста, чтобы тот упрощал код настолько, насколько это возможно, избегая дополнительных операций, которые могут нагрузить «железо» и привести к задержкам при загрузке сайта. То есть к увеличению времени ответа сервера.
Отправление запросов в сторонние сервисы
Наличие зависимостей всегда ставит под угрозу скорость работы сайта. Невозможно взять под контроль производительность продуктов, которые разработаны не вами. Если ваш проект запрашивает данные со стороннего сервиса, а тот находится под нагрузкой, то замедлится и ваш проект.
А если зависимостей будет много, то передача данных может затянуться еще значительнее. К тому же есть ненулевая вероятность, что сторонний источник данных вовсе перестанет работать. Поэтому вебмастера рекомендуют избавляться от зависимостей, когда это возможно.
Плагины и темы, пожирающие все ресурсы
Вероятно, ваш сайт работает с CMS в духе WordPress или Joomla. Если установить на них некорректно работающие плагины или увесистые шаблоны, то можно потерять в производительности. Они начнут поедать ресурсы, необходимые для нормальной работы сайта в целом. Увеличится время загрузки страниц. Причем не поможет кэширование и другие методики сокращения времени ответа сервера. Поэтому лучше выбирать проверенные дополнения к CMS.
Плохой хостинг
Ответственность за медленные сайты можно переложить на провайдера. Если очевидно, что проблемы на стороне «железа», то стоит задуматься о переходе на другой хостинг. Каждый провайдер предлагает тестовый период хотя бы на пару дней. Можно перенести сайт к другому провайдеру и посмотреть, как он работает, провести пару тестов.
Как проверить время ответа сервера?
Есть два веб-сервиса для тестирования производительности сайта. А еще небольшой скрипт, который можно вписать в футер страницы и получать информацию о времени загрузки после каждого ее обновления.
Яндекс.Вебмастер
Необходимый минимум информации о скорости ответа сервера можно получить в Яндекс.Вебмастере. Даже без регистрации. Достаточно указать ссылку для проверки, и робот Яндекса оценит базовую производительность.
Вебмастер покажет базовую информацию о вашем веб-ресурсе. Но главное — время ответа сервера. У нас — это 236 миллисекунд. И сигнал ОК. Статус HTTP — 200.
WEBO Pulsar
Бесплатный сервис для проверки скорости сайтов, который работает так же просто, как и Вебмастер, но дает куда больше полезной информации. Хороший вариант для тех, кому нужен более подробный отчет.
Скрипт для проверки времени ответа
Надо прописать в index.html (в футер) код, прописанный ниже:
Здесь важно оценивать радикальные изменения. От 2 секунд и больше.
Как уменьшить время ответа сервера?
Далее будем разбирать возможные решения возникшей проблемы. Причем разберем описанные выше проблемы (и рассмотрим решения, отталкиваясь от них), а также примеры схожих трудностей из жизни вебмастеров.
Удалить проблемные плагины
Первое, что надо проверить – все дополнения, которые вы используете в своей CMS. Все, что стоит поверх условного WordPress, надо проанализировать. Любой плагин может криво встать и заметно снизить скорость работы сайта.
Так что отключаем их все и снова тестируем скорость сайта. Если произошли изменения, то поочередно включаем дополнения, попутно проводя тестирования, пока нам не попадутся плагины, оказывающих заметное влияние на производительность.
Отыскав причину, удаляем ее. Ну или обращаемся к разработчикам плагина, чтобы те помогли. Создатели дополнений к WordPress регулярно выпускают патчи с исправлениями ошибок, найденных пользователями.
Поменять шаблон сайта
Как и дополнения, шаблоны могут влиять на скорость работы ресурса. Принцип проверки почти такой же, как в случае с плагинами. Надо начать с замены шаблона. Для этого берем любой из бесплатных вариантов и устанавливаем его как основной.
Затем вставляем свой код в этот шаблон и переносим необходимые данные для работы своего ресурса. Смотрим, что происходит. Скорость увеличилась? Меняем шаблон и забываем о проблемах со скоростью. Нет? Продолжаем искать, пробовать другие варианты, описанные ниже.
Проверить сервер на наличие вирусов
Вирусы могут напасть на устройство, подгрузить его, отобрать ресурсы. Из-за этого упадет скорость загрузки сайта. Проверить сервер на вирусы можно несколькими способами – либо через онлайн-сервис, либо через скрипт, встраиваемый в index.html.
Есть такая вещь, как Antivirus Alarm. Простенький сайт с поисковой строкой. Вводим в него адрес страницы, которую нужно проверить, и ждем. Сайт покажет все угрозы, которые сможет найти. Правда, находит он мало.
С серьезными подозрениями лучше использовать решения посерьезнее. Например, AI-Bolit. Облачный антивирус показывает подозрительные переадресации, хакерские скрипты, незащищенные директории.
Надо встроить его в свой сайт вручную через панель управления или запросить хостинг-провайдера подключить скрипт. Если он что-то найдет, можно заказать услугу лечения у разработчиков приложения.
Почистить базу данных (на примере WordPress)
Есть две таблицы, за которыми стоит наблюдать тщательнее, чем за остальными:
Трогать post и comments необязательно. Там будет контент и комментарии.
В postmeta надо удалить весь бесполезный кэш, что удастся найти руками. Не факт, что поможет, но процедура сама по себе полезная. Потом надо почистить options. Это можно сделать специальным плагином — Clean Options. Он разработан для работы конкретно с этой таблицей. Он оже вынесет кучу мусора. Кэш от сторонних дополнений может поедать ресурсы и занижать производительность.
Еще есть Plugins Garbage Collector, который вычищает хлам, который остается от других плагинов. Ну и HYPER CACHE, который сжимает все скрипты и CSS-файлы.
Выключить cron-демон
cron — это планировщик задач для Linux. В него можно прописать любые процессы, которые будут автоматически запускаться в указанное время. В базе данных есть отдельная таблица под cron. Можно через phpMyAdmin открыть ее и стереть ненужные задачи.
Их там может быть с несколько сотен и тысяч. Такая таблица может весить несколько мегабайт и увеличивать время ответа сервера секунд на 8.
Если не пользуетесь планировщиком или в нем мало задач, то можно удалить все связанное с cron. Проще будет настроить все заново, чем разгребать то, что могло накопиться ранее.
Перенести скрипты в нижнюю часть страницы
Надо сделать так, чтобы все тяжеловесные скрипты загружались позже, чем контент. Сложную логику, требующую много времени на обработку, но некритичную для работы ресурса в целом, стоит отправить куда-нибудь подальше.
Тогда посетитель сайта сможет сразу увидеть контент, за которым пришел, а не будет пялиться на белый экран в ожидании завершения работы вашего скрипта, который ему не особо интересен.
Так что вписывайте их в конец страницы или пользуйтесь инструментами, которые мешают запуску скриптов по стандартному порядку и позволяют указать собственный.
Установить WordPress-плагин для сжатия данных
Для пользователей других CMS тоже актуально. На официальном сайте с дополнениями найдется много приложений, которые занимаются сжатием данных. Это касается как медиаконтента, так и более сложных вещей вроде баз данных. Подойдет расширение Autoptimize или Hyper Cache, который эффективнее других кэширует данные, что ускоряет отклик от сервера и в целом повышает производительность ресурса.
Установить плагин Cloudflare для кэширования страниц
Хороший плагин для кэширования есть у компании Cloudflare. Не так давно они запустили собственный сервер, на котором пользователи WordPress-сайта могут за 5 долларов в месяц разместить свой сайт (его кэш). Это ускоряет отклик сервера на 71%. Принцип работы прост – в аш сервер используется только для контакта с Cloudflare и обновления контента на нем. А пользователи видят и взаимодействуют с тем, что лежит на серверах Cloudflare. Их железо однозначно быстрее, поэтому сервис заметно сократит время ответа сервера.
Смена хостинга
Стоит перепробовать все методы, чтобы понять, какой из них принесет пользы больше остальных. Если все сайты, размещенные на «железе» вашего провайдера, работают плохо, надо менять провайдера или местоположение дата-центра, где базируется контент вашего сайта.
1 из 9 методов сработает. Нерешаемых проблем с производительностью веб-ресурсов не бывает.

























