В отличие от печально известной ошибки 404, которая подразумевает, что запрошенный ресурс (веб-страница) не может быть найден на своем сервере (webserver), ошибка 520 указывает на то, что могла возникнуть проблема с самим сервером или с конфигурацией на стороне сервера или программным приложением, которое предотвращает возврат веб-страниц в браузеры посетителей.
Как владелец веб-сайта, особенно если вы размещаете веб-сайт на WordPress, вы должны быть обеспокоены ошибкой 520. Это потому, что это может указывать на то, что посетители не могут получить доступ к вашему веб-сайту из-за проблем на “вашей стороне”.
Это может привести к разочарованию посетителей и потенциальной потере бизнеса.
В этой статье мы рассмотрим некоторые из распространенных причин ошибки 520 и дадим советы по устранению неполадок.
Чтобы лучше понять ошибку 520, давайте кратко рассмотрим, как веб-сайты и веб-страницы отображаются на высоком уровне с помощью веб-браузеров.
Пропустите эту часть, если вы уже знаете нюансы отображения веб-сайтов.
Или, если вы знакомы с такими понятиями, как DNS, прокси-серверы, CDN, SSL-квитирование и тому подобное.
Когда посетитель вводит URL веб-сайта в веб-браузере и нажимает Enter, браузер, прежде всего, отправляет запрос DNS на сервер системы доменных имен (DNS). Обычно это предоставляется интернет-провайдером (ISP).
DNS-сервер отвечает за преобразование доменного имени веб-сайта (того, которое вы ввели прописью) в соответствующий IP-адрес сервера, на котором размещен веб-сайт.
Затем браузер отправляет запрос на адрес сервера веб-сайта (который он получил от DNS-сервера). Запрос передается на брандмауэр сервера веб-сайта (web server).
Именно здесь разворачивается путешествие запроса “через Интернет”, чтобы в конечном итоге отобразить веб-сайт в браузере пользователя.
Если веб-сайт защищен (или обслуживается) сетью доставки контента (CDN), такой как Cloudflare, что обычно и происходит, запрос сначала отправляется на серверы CDN. Они действуют как прямые прокси-серверы.
Сервер (также называемый пограничным сервером) проверяет свой кэш, чтобы увидеть, есть ли в нем запрошенное содержимое. Если есть, он отправляет содержимое обратно в браузер пользователя. Если это не так, он действует как обратный прокси-сервер и передает запрос на веб-сервер, на котором размещен веб-сайт и его содержимое.
Для этого обратному прокси-серверу необходимо знать IP-адрес веб-сервера. Здесь снова появляется DNS.
CDN — это географически распределенная сеть серверов (пограничных серверов), которые работают вместе для обеспечения быстрой доставки интернет-контента. Они предназначены для предоставления контента конечным пользователям с высокой доступностью и производительностью.
Cloudflare — это широко используемое название сети CDN, предоставляющей ряд услуг, включая доставку контента, защиту от DDoS-атак и веб-безопасность.
С точки зрения веб-сайта и сервера, на котором он размещен, брандмауэр создает барьер между надежной внутренней сетью и ненадежными внешними сетями, такими как Интернет.
На основе политик безопасности он отслеживает и фильтрует входящий и исходящий трафик.
Возвращаясь к тому, как передается содержимое веб-сайта, запрос от CDN проходит через брандмауэр веб-сервера и попадает на веб-сервер, где он обрабатывается и на него дается ответ (с запрошенным содержимым) обратно в браузер пользователя.
Она, в свою очередь, отображается для просмотра пользователем.
Теперь, когда у нас есть общее представление о том, как отображаются веб-сайты, давайте посмотрим, как они могут быть заблокированы, что приводит к ошибке 520.
Отображая ошибку 520, сервер, по сути, сообщает, что не может обработать запрос из браузера пользователя. Следовательно, веб-сайт в настоящее время недоступен.
Вот несколько способов, которыми это может произойти:
Иногда код веб-сайта, написанный на PHP, может аварийно завершать работу. Когда это происходит, это может вызвать ошибку 520, поскольку сервер не может обработать запрос от веб-браузера.
В любой момент выполнения запросов веб-браузера, если записи DNS вашего веб-сайта настроены неправильно и в соответствии с веб-сервером, веб-браузер может быть не в состоянии найти сервер веб-сайта, что может вызвать ошибку 520.
Файл .htaccess — это файл конфигурации, связанный с кодом вашего веб-сайта, который сообщает веб-серверу, как обрабатывать определенные запросы. Если этот файл поврежден или имеет неправильные настройки, это может вызвать ошибку 520, поскольку сервер не знает, как правильно обработать запрос.
Когда веб-браузер запрашивает сервер, он отправляет информацию, называемую “заголовки”, которые включают в себя такие вещи, как файлы cookie (которые запоминают ваши предпочтения на веб-сайте). Слишком много заголовков или файлов cookie может привести к перегрузке сервера и вызвать ошибку 520.
В отличие от приведенного выше пункта, иногда веб-браузер может не отправлять всю необходимую информацию на сервер при выполнении запроса, и он может быть не в состоянии правильно обработать запрос.
Также может случиться, что веб-сервер или прокси-серверы не отправляют никакого ответа браузеру, что приводит к ошибке 520, поскольку браузер не знает, что делать дальше.
Ошибка 520 может возникнуть, если установлен брандмауэр или другие меры безопасности, которые блокируют соединение между обратным прокси-сервером и исходным сервером.
Когда пользователь подключается к веб-сайту по протоколу HTTPS, его браузер и веб-сервер обмениваются рукопожатием SSL/TLS для установления безопасного соединения. Это включает в себя серию шагов по согласованию параметров шифрования и обмену ключами для шифрования и дешифрования данных.
Любая проблема с конфигурацией сертификата SSL/TLS на исходном сервере может вызвать сбой установления связи с обратным прокси-сервером и привести к ошибке 520.
Например, это может произойти, если срок действия сертификата истек, он неправильно настроен или недействителен.
Ошибка 520 также возникает, если исходный сервер перегружен и не может отвечать на запросы от обратного прокси-сервера.
Нет необходимости паниковать, когда вы сталкиваетесь с ошибкой 520. Существует несколько способов определить и устранить основную причину ошибки.
Если вы столкнулись с ошибкой 520 при попытке доступа к веб-сайту, вам следует подождать несколько минут и обновить страницу, чтобы узнать, устранена ли проблема. Ошибка может возникнуть из-за временных проблем с сетью или сервером.
Например, сервер или сеть могут испытывать большой объем трафика или временную перегрузку, из-за которой они не могут обрабатывать запросы.
В течение этого времени сервер может устранять основную проблему или автоматически увеличивать свои ресурсы, чтобы справиться с возросшей нагрузкой. Поэтому вполне логично, что вы даете ему время снова начать обработку запросов.
Если вы используете Cloudflare в качестве обратного прокси-сервера, вы можете временно отключить Cloudflare, чтобы посмотреть, исчезнет ли ошибка. Если это произойдет, то вы будете знать, что проблема связана с Cloudflare, и приступите к устранению неполадок тем же способом.
Войдите в свою учетную запись поставщика услуг DNS, доступ к которой также может быть через вашего хостинг-провайдера, Cloudflare или аналогичные сервисы. Проверьте, правильно ли настроены записи, в частности записи CNAME (каноническое имя).
Запись CNAME сообщает преобразователю DNS, что он должен найти IP-адрес домена, указанный в записи CNAME, и использовать этот IP-адрес в качестве места назначения для запроса.
В зависимости от поставщика DNS, обновление записей может занять от нескольких минут до нескольких часов, чтобы изменения вступили в силу глобально.
Войдите в свою учетную запись веб-сервера или хостинга и найдите файл конфигурации PHP для вашего веб-сайта. Обычно он называется php.ini или находится в каталоге с именем conf.d или php.d.
Отредактируйте/просмотрите файл и убедитесь, что настройки (такие как ограничения памяти, времени выполнения и размера загружаемого файла) настроены правильно.
Введите команду вашего сервера для перезапуска PHP. Иногда перезапустить PHP можно, перезапустив сам веб-сервер. Команды различаются в зависимости от типа веб-сервера и программного обеспечения, которое он запускает.
Журналы ошибок могут предоставить ценную информацию об инциденте или ошибке, например, где и почему. В зависимости от хостинг-провайдера поиск или генерация журналов ошибок могут отличаться.
Большинство журналов ошибок имеют схожую структуру и содержат важные сведения, такие как дата и время инцидента, IP-адрес клиента (если применимо), сообщение об ошибке и путь к затронутому ресурсу или строке кода, ответственной за проблему.
Тщательно изучите их и попытайтесь определить основную причину.
При очистке кэша веб-сайта удаляются временные файлы и данные, хранящиеся на сервере веб-сайта, такие как изображения, скрипты, таблицы стилей и другие типы содержимого веб-сайта. Это заставит веб-сервер перезагрузить все свое содержимое с нуля, что может помочь устранить ошибки, подобные ошибке 520.
Очистка кэша также может вызвать временные проблемы с производительностью, поскольку веб-сайт должен снова загрузить все свое содержимое.
Важно взвесить преимущества и недостатки перед очисткой кэша. Убедитесь, что все необходимые резервные копии на месте, прежде чем вносить какие-либо изменения в конфигурацию веб-сайта.
На этом примечании вы можете захотеть очистить кэш вашего браузера на тот случай, если проблема связана с вашим браузером.
Запуск команды cURL в вашем командном терминале, клавиша Windows + R” и ввод “cmd” (Windows) | Приложения> Утилиты> Терминал (macOS) имитирует запрос к серверу вашего веб-сайта и получает подробный ответ.
Формат команды следующий:
curl -I http://example.com
Поняв, как выглядят успешный ответ и сообщение об ошибке после выполнения команды cURL, вы можете убедиться, что веб-сервер настроен правильно и отвечает на запросы.
Вы также можете получить заголовки HTTP-ответов сервера и просмотреть коды состояния и сообщения. Предоставьте часть проверки экспертам (команде поддержки), если считаете, что ее может быть слишком много для переварки.
Если ваш веб-сервер работает под управлением Apache, что, скорее всего, так и есть, отключение .htaccess, используемого для настройки параметров веб-сервера на серверах Apache, может помочь устранить ошибку 520.
Вы также можете убедиться, что IP-адреса Cloudflare не заблокированы в .htaccess или вашем брандмауэре.
.htaccess (гипертекстовый доступ) — это файл конфигурации для сайтов, размещенных на Apache. Для тех, кто не знаком, Apache — популярное программное обеспечение веб-сервера с открытым исходным кодом.
При возникновении конфликта между правилами в файле .htaccess и настройками сервера или если файл поврежден, браузер может вернуть ошибку 520.
Большие заголовки и файлы cookie могут превышать максимально допустимый размер веб-серверов или CDN (например, Cloudflare), что может вызвать ошибку 520.
Например, на момент написания этой статьи максимальный пороговый размер заголовков запросов Cloudflare составлял 32 КБ, по 16 КБ на отдельный заголовок.
Вот шаги по проверке заголовков и файлов cookie.
Проанализируйте ее на предмет любых аномалий, таких как чрезмерно большие файлы cookie или размеры заголовков. Если вы обнаружите большие заголовки и файлы cookie, вы можете:
В дополнение к вышеупомянутым шагам, вот еще пара, которые более специфичны для сайтов WordPress.
Хотя вы, как владелец веб-сайта, можете предпринять несколько шагов для устранения ошибки 520, могут возникнуть ситуации, когда устранение ошибки не полностью находится под вашим контролем.
Например, если ошибка вызвана временным отключением сети или проблемой с обслуживанием сервера, возможно, вам придется подождать, пока сервер снова подключится к сети или пока хостинг-провайдер устранит проблему.
Кроме того, для устранения проблем, вызванных ошибкой или недосмотром конфигурации, может потребоваться техническая экспертиза, которая выходит за рамки вашей компетенции.
Возможно, вам потребуется обратиться за поддержкой к их хостинг-провайдеру, веб-разработчику или другим техническим экспертам, имеющим опыт устранения неполадок на стороне сервера.
Не стесняйтесь обращаться за помощью к техническим экспертам. В конце концов, слишком долгое ожидание их решения может привести к потере трафика и потенциального дохода веб-сайта.