Ошибка 522 — ‘Соединение прервано’: Как исправить ошибку

С 2010 года CDN-сервис Cloudflare помогает многочисленным веб-проектам повысить производительность и безопасность. В отличие от обычных сетей доставки контента, Cloudflare функционирует не только как простой буфер для статического контента, но и как обратный прокси-сервер, который находится в постоянном обмене с веб-сервером. Преимуществом этого является то, что содержимое кэша не определяется оператором веб-сайта в явном виде — даже адаптировать исходный код не требуется, поскольку нужно лишь дать указание DNS-серверам использовать сервис.

Хорошо известная ошибка, которая возникает снова и снова при использовании мощной сети доставки контента, обозначается сообщением: ‘Error 522: Connection timed out’. Хотя эта ошибка также известна как «ошибка Cloudflare», на самом деле проблема не является виной самой службы веб-производства.

Что означает сообщение ‘Error 522’?

Как и многие другие страницы ошибок во всемирной паутине, сообщение 522 является одним из сообщений о состоянии HTTP: в то время как предшествующее ‘5’ указывает на ошибку сервера, следующее ‘2’ указывает на то, что ошибка сервера возникла в связи с Cloudflare. Код 522 означает «Connection timed out», что происходит всякий раз, когда TCP квитирование между веб-сервером и Cloudflare не удается. Это рукопожатие, необходимое для установления соединения, становится необходимым всякий раз, когда служба CDN получает запрос пользователя, требующий консультации с сервером. В связи с активным использованием Cloudflare ошибка 522 connection timed out является одним из наиболее распространенных сообщений об ошибках браузера.

Что вызывает ошибку Cloudflare?

Вопреки первоначальным подозрениям, причиной возникновения ошибки 522 является не сбой в работе Cloudflare, а проблема на стороне сервера. Однако, как и в случае со многими подобными ошибками HTTP, назвать источник ошибки напрямую не так просто. Существуют различные сценарии, которые могут вызвать тайм-аут при установлении TCP-соединения между службой CDN и обратившимся веб-сервером. Наиболее распространенными причинами появления сообщения о таймауте соединения являются следующие:

  • Веб-сервер находится в автономном режиме: HTTP-ошибка 522 часто появляется из-за того, что веб-сервер, с которым установлена связь, находится в автономном режиме. Поскольку связь между веб-сервером и Cloudflare происходит через Интернет, обмен, очевидно, не может состояться.
  • Перегрузка исходного сервера: Cloudflare выполняет много работы для оригинального веб-сервера, на котором запущен проект. Для определенных запросов от пользователей браузера (особенно динамического контента) служба CDN все же должна обращаться к оригинальному серверу. Как и в случае обычного сервера без CDN, это иногда приводит к перегрузке и тайм-ауту при построении TCP, если одновременно должно обрабатываться слишком много запросов.
  • Брандмауэр блокирует запрос: если оригинальный сервер подключен к собственному брандмауэру, это также может вызвать ошибку Cloudflare. Конечно, IP-адреса службы производительности должны быть разрешены этой службой по умолчанию, однако иногда адреса случайно или случайно блокируются. В результате соединения не могут быть установлены. Неправильные настройки также могут привести к удалению пакетов из сети исходного хоста.
  • Неправильные настройки DNS: Серверы DNS работают с IP-адресом исходного сервера. Любое изменение этого адреса должно быть передано, чтобы CDN и сервер могли продолжать работать вместе. Поскольку многие хостеры автоматически назначают новые веб-адреса управляемым веб-сайтам время от времени и не пересылают их в Cloudflare, в настройках DNS иногда используется неправильный адрес.
  • Неправильная маршрутизация: Cloudflare должен работать за границами сети, чтобы обеспечить надлежащую оптимизацию производительности веб-сайта. IP-маршрутизация, которая регулирует путь пакетов, отправляемых через различные сети, является элементарной частью процесса доставки контента. Если между исходным сервером и Cloudflare имеются расхождения, это часто приводит к появлению сообщения об отключении соединения по таймеру.
  • Сообщения keepalive отключены на стороне сервера: Cloudflare использует запись заголовка ‘keepalive’ для поддержания установленных соединений в течение более длительного периода времени, что повышает производительность. Если опция отображения HTTP-сообщений на веб-сервере отключена, установка соединения не удается, что приводит к ошибке 522. Поскольку большинство распространенных веб-серверов по умолчанию разрешают запись keepalive, это относительно редкая причина ошибки, и почти всегда она связана с ошибкой конфигурации со стороны веб-мастера.

Исправление ошибки 522: У операторов веб-сайтов есть следующие возможности

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

В следующих разделах мы собрали наиболее перспективные решения для устранения ошибки 522.

Решение 1: Оптимизация мощности сервера

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

Решение 2: Проверьте IP-фильтрацию

Чтобы выяснить, не блокируются ли IP-адреса Cloudflare вашим веб-сервером, необходимо проверить соответствующие настройки брандмауэра и других приложений фильтрации, таких как iptables. Интернет-адреса также могут фильтроваться в файле .htaccess, поэтому их также следует проверить на наличие заблокированных IP-адресов. Список адресов, используемых поставщиком услуг CDN, можно найти на официальном сайте. Если один из этих адресов заблокирован в названных программах (или инструментах с аналогичными функциями), то для исправления ошибки 522 его необходимо разблокировать. Приложения часто автоматически блокируют IP-адреса, поэтому следует перестраховаться и внести адреса Cloudflare в белый список.

Примечание

Не редки случаи, когда адреса Cloudflare фильтруются не веб-сервером, а вашим хостинг-провайдером. Поэтому, если вы подозреваете, что за сообщением ‘Connection timed out’ стоит проблема с IP-адресом, и не можете обнаружить никаких неправильных настроек в ваших приложениях, обратитесь к провайдеру.

Решение 3: Настройте параметры DNS/IP

Если ваш веб-хост полагается на регулярную смену адреса веб-сервера, вы сами должны перенаправлять измененные IP на Cloudflare. По умолчанию провайдеры сообщают об этих изменениях только собственным DNS-серверам. Если возникает ошибка 522, стоит взглянуть на настройки IP вашего домена. Войдите в соответствующую административную панель вашего веб-проекта и запишите текущие IPv4 и IPv6 адреса веб-сервера. Затем перейдите в меню конфигурации Cloudflare и выберите домен, вызывающий ошибку. Нажмите на пункт меню ‘DNS’, а затем введите записанные веб-адреса в соответствующие записи DNS (тип записи AAAA: IPv6, тип записи A: IPv4).

Решение 4: Активируйте сообщение ‘keepalive’

Если ошибка Cloudflare связана с неправильными настройками заголовков HTTP, то теоретически ее относительно легко исправить. Если ‘keepalive’ выключен или определено слишком мало возможных запросов, это можно исправить в соответствующем конфигурационном файле веб-сервера (например, в httpd.conf для серверов Apache). Однако необходимым условием является наличие соответствующих прав, чего часто не бывает при использовании пакетов виртуального хостинга. В таких случаях у вас есть только возможность связаться с провайдером. Если проблема сохраняется с настройкой ‘keepalive’ для выбранного пакета, вам следует подумать о смене модели хостинга или провайдера.

Решение 5: Обратитесь в службу поддержки Cloudflare-Support

Если ошибка 522 связана с проблемой маршрутизации трафика, обратитесь в службу поддержки Cloudflare. Создайте тикет с описанием проблемы, указав, какие области вы уже проверили на наличие ошибок. Провайдер CDN также рекомендует использовать такие инструменты, как MTR или traceroute, чтобы получить информацию о текущей коммутации пакетов между вашим веб-сервером и IP-адресами Cloudflare. Вы можете прикрепить результаты к своему тикету (в текстовом или графическом формате), чтобы ускорить процесс решения проблемы.

Что может сделать пользователь браузера с сообщением о тайминге соединения?

Список возможных причин ошибки показывает, что HTTP ошибка 522 — это проблема только на стороне сервера. Поэтому если вы просто просматриваете всемирную паутину и столкнулись с сообщением 522 при посещении какого-либо сайта, это не связано с неисправным интернет-соединением или неисправным плагином. Однако это также означает, что вы не можете решить проблему напрямую. Чтобы свести разочарование к минимуму (или предотвратить его с самого начала), рекомендуется подождать и посетить сайт позже. Надеюсь, к тому времени проблема связи между Cloudflare и веб-сервером будет устранена, и сайт будет отображаться нормально.

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

 

Оцените статью
cdelat.ru
Добавить комментарий