Ошибка 502 504 что это

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

500 Internal Server Error (Внутренняя ошибка сервера)

Серверу не удалось обработать запрос к сайту. Возможных причин для этого может быть много, но сузить их круг можно, восстановив последовательность ваших действий перед сообщением об ошибке. Также изучите само сообщение: комментарий «Internal Server Error» говорит о проблемах с файлом .htaccess, текст «HTTP ERROR 500» — о проблемах со скриптами, а текст «PHP Parse error: syntax error, unexpected» или «Internal Server Error nginx» — о неполадках в CMS.

Ошибка 500

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

2. Посмотрите файл .htaccess на предмет ошибок в командах. Закомментируйте директиву Options, поставив перед ней решётку: если после этого ошибка 500 перестанет появляться, значит, есть нарушения в синтаксисе и в описании команд.

3. Убедитесь, что права доступа к файлам, папкам и скриптам выставлены верно. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644. При других вариантах прав доступ к сайту может блокироваться в целях безопасности.

4. Проверьте, всё ли в порядке со скриптами. Возможно, какой-то из скриптов слишком медленный или время ожидания ответа от сервера слишком мало. Если при просмотре лог-файлов выяснится, что какой-то из скриптов незапланированно требует слишком много памяти, оптимизируйте его или удалите. А если обнаружится, что какой-то из скриптов вовсе не запускается, убедитесь, что функция прописана верно, поддерживается сервером и соответствует используемой версии PHP.

5. Отдельно обратите внимание на CGI-скрипты: вероятно, строки в них имеют не те окончания, что исправляется загрузкой скриптов через FTP в режиме ASCII. Также некорректная работа CGI-скриптов может быть причиной ошибок в HTTP-заголовках, что тоже приводит к ошибке 500. Либо же имеются ошибочные директивы, предназначенные для работы со скриптами.

502 Bad Gateway (Ошибочный шлюз)

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

Ошибка 502

1. Перезагрузите страницу. Зайдите на любой другой сайт, которой точно должен работать в данный момент. Это поможет узнать, есть ли у вас доступ к интернету в принципе. Если доступ есть, очистите файлы cookies в браузере, а затем посетите сайт снова.

2. Убедитесь, что на ваш сайт не совершается DDoS-атака. В противном случае обратитесь к хостинг-провайдеру.

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

4. Проверьте нагрузку на сервер. Если лимит превышается, необходимо увеличить объём оперативной памяти.

5. Посмотрите настройки сервера. Возможными поводами для появления ошибки 502 могут быть:
• неполадки после установки обновлений;
• превышение лимитов на число обращений к внешним ресурсам и на время ответа сервера;
• некорректные лимиты в файлах конфигурации ini;
• превышение лимита на число php-cgi-процессов;
• недостаточная оптимизация скриптов;
• недостаточная оптимизация запросов;
• неправильная работа модулей (если ошибка возникает при обращении к скриптам конкретного расширения).

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

503 Service Unavailable (Сервис недоступен)

Сервер не работает из-за перегрузок. Либо же происходит плановая перезагрузка или отключение сервера: в этом случае вместе с сообщением об ошибке после слов «Retry-After» должно отображаться время, когда сервер вернётся в работу. Если же ошибка 503 появляется часто и не по причине плановых работ, то это говорит о неполадках, которые следует устранить.

Ошибка 503

1. Сначала просто подождите. Возможно, причина в длинной очереди запросов к серверу, что не требует вмешательства.

2. Как и в случае с ошибкой 502, удостоверьтесь, что на сайт не производится DDoS-атака.

3. Если используется связь с удалённым сервером, убедитесь, что она стабильная, а тайм-аут ожидания ответа невысокий.

4. Проверьте, не слишком ли активно посещают ваш сайт поисковые роботы. Если это имеет место быть, ограничьте их активность.

5. Удалите тяжёлые или вовсе ненужные плагины и компоненты.

6. Если возможно, оптимизируйте подгрузку файлов сайта, чтобы снизить число запросов.

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

8. Оптимизируйте почтовую рассылку: распределяйте отправку писем по времени, запускайте рассылку в часы наименьшей нагрузки.

9. Оптимизируйте SQL-запросы, выявите самые медленные из них с помощью лог-файлов.

504 Gateway Timeout (Шлюз не отвечает)

Один из серверов не дождался ответа от вышестоящего сервера, о чём сообщает кодом 504.

Ошибка 504

1. Перезагрузите страницу, убедитесь в стабильности работы сетевых устройств.

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

3. При чрезмерной нагрузке на сервер увеличьте его ресурсы или оптимизируйте сайт.

4. Если возможно, увеличьте время ожидания при использовании nginx как прокси-сервера для Apache. Для этого добавьте эти строки в блоке server в файле nginx.conf:

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

5. Если у вас нет возможности менять настройки сервера, обратитесь к хостинг-провайдеру.

Также посмотрите ответы на вопросы из нашего раздела FAQ:

  • Отчего возникает ошибка 500?
  • Отчего возникает ошибка 503?
  • Как изменить страницы ошибок 403, 404 и 500?

Кстати, недавно мы в целом рассказали о кодах состояния сервера, к которым относятся в том числе и коды ошибок.

  • 500 Internal Server Error
  • 502 Bad Gatеway
  • 503 Service temporarily unavailable
  • 504 Gateway Timeout
  • Ошибка 505

Коды ошибок 500, 502, 503, 504 говорят о том, что сервер в данный момент не может отобразить запрос из-за внутренней ошибки.

500 Internal Server Error

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

Некоторые причины появления ошибки 500

  • Ошибки при работе скриптов сайта.
  • Неверные директивы, указанные в файле .htaccess.

В редких случаях ошибка 500 может быть следствием внедрения в файлы сайта вредоносного кода.

Способы устранения ошибки 500 Internal Server Error

Проверьте логи ошибок веб-сервера. На хостинге RU-CENTER они размещены в каталоге /var/log, подробнее в статье. Если ситуация связана с ошибочными директивами в .htaccess, с ошибками в работе CGI-скриптов, с ошибками в файле конфигурации веб-сервера, вы увидите точную причину ошибки в логе веб-сервера и сможете её устранить.

Если ошибка возникает при работе PHP-скрипта, текст ошибки в лог может не попасть. В этом случае нужна дополнительная диагностика.

502 Bad Gatеway

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

Причины появления ошибки 502 

  1. Веб-сервер выключен.
  2. При настройке веб-сервера допущена ошибка в конфигурации.
  3. Для работы сайта недостаточно оперативной памяти или других ресурсов. Например, при DDoS-атаке на сайт, когда на обработку «паразитных» запросов затрачиваются все имеющиеся у веб-сервера ресурсы.
  4. Произошла ошибка при работе с памятью в скрипте, что часто встречается при использовании старых версий PHP.
  5. Время выполнения скрипта превысило установленные на сервере ограничения.

Способы устранения ошибки 502 Bad Gatеway

  1. Проанализируйте текущий уровень общей нагрузки для сервера и в момент возникновения ошибки. На хостинге RU-CENTER это можно сделать в панели управления хостингом в разделе «Ресурсы» — «Статистика». Обратите внимание на пики потребления оперативной памяти.
  2. Проверьте лог-файл веб-сервера (/var/log/error_log). При обнаружении в нём подозрительных сообщений, связанных с выделением оперативной памяти, обратитесь в техподдержку.
  3. Проверьте оптимальность работы используемых на сайте скриптов, оцените скорость обработки запросов. Иногда долгое ожидание может быть связано с обработкой большого объёма данных или с обращением к внешним ресурсам. В этих случаях откажитесь от таких операций или выполните их оптимизацию.

503 Service temporarily unavailable

Ошибка означает, что в течение некоторого времени сервер не сможет обрабатывать запросы из-за технических неисправностей.

Причины появления ошибки 503

  1. Передача большого объёма данных.
  2. Превышено время ожидания загрузки.
  3. Большое количество запросов к серверу.
  4. На хостинге RU-CENTER данный код может выдаваться при обращении к сайту, которого на хостинге не существует.

Способы устранения ошибки 503 Service temporarily unavailable

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

504 Gateway Timeout

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

Причины появления ошибки 504

  1. Долгая обработка запроса скриптами сайта.
  2. Обработка большого количества данных.
  3. В ряде случаев причины появления ошибки 504 могут совпадать с аналогичными для ошибки 502.

Способы устранения ошибки 504 Gateway Timeout

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

Также для устранения ошибки можно попробовать увеличить в настройках PHP время выполнения скрипта (max_execution_time) и время получения данных (max_input_time).

Ошибка 505

Ошибка 505 появляется при использовании неподдерживаемой браузером версии HTTP. 

Причины появления ошибки 505

  1. Заражение вирусом, который получил контроль над браузером или исходящим трафиком.
  2. Использование устаревшего браузера, не поддерживающего современные версии HTTP.
  3. Сервер не поддерживает новые версии протокола, по которым осуществляется соединение.

Способы устранения ошибки 505 HTTP Version not supported

  1. Поиск вирусов. Вредоносная программа может повредить и удалить файлы, необходимые браузеру для определения состояний. 
  2. Обновление системы. Вы можете избежать не только появления ошибки 505, но и ряда других проблем, используя актуальную версию ОС и/или браузера. Если вы отключили автоматические обновления, рекомендуем скачать и установить их.

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

  Туториал: как исправить ошибки сервера

  • Ошибка 500
  • Ошибка 502
  • Ошибка 503
  • Ошибка 504

Ошибка 500

Ошибка 500 или Внутренняя ошибка сервера (Internal server error) говорит о том, что при загрузке сайта или страницы сервер не смог выполнить запрос.

Причины могут быть следующими.

Ошибки в конфигурационном файле .htaccess 

Файл .htaccess расположен в корневом каталоге сайта. Если вы вносили изменения в этот файл, попробуйте восстановить его начальное состояние.

Неправильно установленные права доступа

Проверьте, что на каталоги указаны права доступа “755”, а на файлы — “644”.

Неправильная версия PHP

Некоторые скрипты требуют определённую версию PHP. Смените версию на другую по инструкции.

Ошибки в скрипте

Включите вывод ошибок на экран, как указано в инструкции.

Нехватка памяти для загрузки скриптов и контента

Увеличьте значения памяти сайта и других PHP-настроек. Для этого добавьте в файл .htaccess следующие строки:

php_value upload_max_filesize 128M

php_value post_max_size 128M

php_value max_execution_time 300

php_value max_input_time 300

php_value memory_limit 256M

Ошибка 502

Ошибка 502 или Bad Gateway возникает из-за проблем в работе серверов: прокси, DNS или сервера хостинга. Она говорит о том, что браузер при обращении к сайту получил неверную информацию от сервера, который является шлюзом или прокси.

При появлении ошибки обратитесь в техподдержку, так как проблема находится на стороне сервера) либо перезапустите веб-сервер.

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

Ошибка 503

Ошибка 503 или Service Temporarily Unavailable появляется, когда очередь из запросов пользователей достигает лимита. Поэтому сервер временно перестаёт их обрабатывать и становится недоступным.

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

Чтобы исправить эту проблему, вы можете:

  • поместить все файлы на сервер и уменьшить количество подключений к удалённым серверам;

  • отправлять большие файлы напрямую, а не с использованием скриптов;

  • убрать тяжёлые модули CMS;

  • подключить тарифный план на хостинге с большим объёмом памяти.

Ошибка 504

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

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

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

А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.

Ошибки со стороны клиента (4xx)

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

400 Bad Request

Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них). 

401 Unauthorized

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

402 Payment Required

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

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

403 Forbidden

Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки. 

Анимация на тему 403 

Творчество на тему знаменитой киносаги

404 Not Found

Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет. 

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

Ошибка 404

Еще вариант оформления ошибки 404

И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.

405 Method Not Allowed

405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе. 

406 Not Acceptable

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

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

407 Proxy Authentication Required

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

408 Request Timeout

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

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

Кадр из фильма Мистер Робот 

В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона

409 Conflict

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

410 Gone

Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404. 

411 Length Required

411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.

412 Precondition Failed

Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD. 

413 Payload Too Large/Request Entity Too Large

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

414 URI Too Long

Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так. 

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

415 Unsupported Media Type

Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413. 

416 Range Not Satisfiable

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

417 Expectation Failed

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

418 I’m a teapot

Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.

Чайник на сайте Google

У Google получился такой симпатичный чайник

421 Misdirected Request

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

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

422 Unprocessable Entity

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

423 Locked

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

424 Failed Dependency

424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.

425 Too Early

Появляется в ответ на запрос, который может быть моментально запущен заново. Сервер не рискует и не берется за его обработку, чтобы не подставиться под так называемую «атаку повторного воспроизведения».

426 Upgrade Required

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

428 Precondition Required

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

429 Too Many Requests

Здесь все просто. Ошибка появляется, когда клиент отправляет на сервер слишком много запросов в короткий промежуток времени. Очень похоже на поведение взломщиков. По этой причине запрос моментально блокируется. 

Ошибка 429

431 Request Header Fields Too Large

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

444 No Response

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

449 Retry With

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

450 Blocked by Windows Parental Controls

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

451 Unavailable For Legal Reasons

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

Лого Роскомнадзора

Читайте также

Ошибка сервера 504

Ошибка сервера 403

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

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

Подписаться

Список ошибок на стороне сервера (5xx)

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

500 Internal Server Error

Этот код возникает, когда сервер сталкивается с непредвиденными обстоятельствами. Такими, которые и сам не может пояснить. Как, собственно, и завершить запрос со стороны пользователя. По факту, эта ошибка говорит нам что-то вроде «Я не могу подобрать более подходящий код ошибки, поэтому лови 500 и делай с этим, что хочешь». Мы писали о нем чуть подробнее тут.

Ошибка 500

Дело не в тебе, дело во мне (С)

 Синий экран смерти

501 Not Implemented

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

Иногда в теле ошибки еще пишут что-то в духе «Приходите попозже, возможно, в будущем нужная функция появится».

502 Bad Getaway

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

503 Service Unavailable

Появляется, когда сервер не может обработать запрос клиента по одной из двух технических причин:

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

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

504 Gateway Timeout

Ошибка похожа на 408. Здесь же прокси-сервер пытается выйти на контакт с вышестоящим сервером, но не успевает это сделать до истечения тайм-аута. Отсюда и ошибка.

 Вариант оформления ошибки 504

505 HTTP Version Not Supported

Этот код похож на 426. Он тоже связан с неподходящей версией протокола HTTP. В этом случае нужно обеспечить и клиента, и сервер единой версией. Она, как правило, указывается в запросе со стороны пользователя. 

506 Variant Also Negotiates

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

507 Insufficient Storage

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

508 Loop Detected

Таким кодом сервер отзовется в случае, если заметит бесконечный цикл в запросе клиента. Можно расценивать его как провал запроса и выполняемой операции в целом.

509 Bandwidth Limit Exceeded

Возникает, если сервер начинает потреблять больше трафика, чем ему позволено. 

510 Not Extended

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

511 Network Authentication Required

511 код говорит о том, что перед тем как выйти в сеть, надо авторизоваться (ввести логин и пароль). Можно воспринимать это неким PPPoE подключением, когда от клиента требуются данные для авторизации.

Заключение

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

#Руководства

  • 10 апр 2023

  • 0

Вам придётся её пофиксить. This is the way!

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Иногда сервер не виноват в том, что у вас не открывается веб-страница. Ошибка 504 — как раз об этом. Сервер ждёт, пока ему отдадут информацию, но его «подставляют» и приходится объяснять пользователю, почему всё так произошло.

Ошибка 504 (Gateway Time Out) возникает, когда сервер не получает ответа от сервера-посредника (или сервера-шлюза) за оговорённое время.

Рассмотрим эту ситуацию на примере VPN-сервиса. Когда пользователь включает его и пытается зайти на сайт, сначала отправляет запрос на VPN-сервер. Оттуда запрос перенаправляется на изначальный адрес, и по обратной цепочке ответ возвращается к пользователю. Но если случится так, что VPN-сервер будет слишком долго ожидать ответа от сайта и в итоге не получит его, то он вернёт пользователю ошибку 504.

В примере с VPN ситуация получается вот такой: главным сервером выступает VPN-сервер, к которому подключается пользователь, а сервером-шлюзом — сайт, на который пользователь хочет зайти. Ошибка возникает из-за того, что сайт слишком долго обрабатывал запрос, но при этом с VPN-сервером всё было в порядке. Поэтому мы и получаем именно код 504.

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

  Туториал: как исправить ошибки сервера

  • Ошибка 500
  • Ошибка 502
  • Ошибка 503
  • Ошибка 504

Ошибка 500

Ошибка 500 или Внутренняя ошибка сервера (Internal server error) говорит о том, что при загрузке сайта или страницы сервер не смог выполнить запрос.

Причины могут быть следующими.

Ошибки в конфигурационном файле .htaccess 

Файл .htaccess расположен в корневом каталоге сайта. Если вы вносили изменения в этот файл, попробуйте восстановить его начальное состояние.

Неправильно установленные права доступа

Проверьте, что на каталоги указаны права доступа “755”, а на файлы — “644”.

Неправильная версия PHP

Некоторые скрипты требуют определённую версию PHP. Смените версию на другую по инструкции.

Ошибки в скрипте

Включите вывод ошибок на экран, как указано в инструкции.

Нехватка памяти для загрузки скриптов и контента

Увеличьте значения памяти сайта и других PHP-настроек. Для этого добавьте в файл .htaccess следующие строки:

php_value upload_max_filesize 128M

php_value post_max_size 128M

php_value max_execution_time 300

php_value max_input_time 300

php_value memory_limit 256M

Ошибка 502

Ошибка 502 или Bad Gateway возникает из-за проблем в работе серверов: прокси, DNS или сервера хостинга. Она говорит о том, что браузер при обращении к сайту получил неверную информацию от сервера, который является шлюзом или прокси.

При появлении ошибки обратитесь в техподдержку, так как проблема находится на стороне сервера) либо перезапустите веб-сервер.

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

Ошибка 503

Ошибка 503 или Service Temporarily Unavailable появляется, когда очередь из запросов пользователей достигает лимита. Поэтому сервер временно перестаёт их обрабатывать и становится недоступным.

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

Чтобы исправить эту проблему, вы можете:

  • поместить все файлы на сервер и уменьшить количество подключений к удалённым серверам;

  • отправлять большие файлы напрямую, а не с использованием скриптов;

  • убрать тяжёлые модули CMS;

  • подключить тарифный план на хостинге с большим объёмом памяти.

Ошибка 504

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

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

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

А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.

Ошибки со стороны клиента (4xx)

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

400 Bad Request

Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них). 

401 Unauthorized

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

402 Payment Required

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

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

403 Forbidden

Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки. 

Анимация на тему 403 

Творчество на тему знаменитой киносаги

404 Not Found

Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет. 

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

Ошибка 404

Еще вариант оформления ошибки 404

И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.

405 Method Not Allowed

405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе. 

406 Not Acceptable

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

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

407 Proxy Authentication Required

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

408 Request Timeout

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

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

Кадр из фильма Мистер Робот 

В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона

409 Conflict

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

410 Gone

Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404. 

411 Length Required

411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.

412 Precondition Failed

Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD. 

413 Payload Too Large/Request Entity Too Large

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

414 URI Too Long

Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так. 

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

415 Unsupported Media Type

Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413. 

416 Range Not Satisfiable

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

417 Expectation Failed

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

418 I’m a teapot

Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.

Чайник на сайте Google

У Google получился такой симпатичный чайник

421 Misdirected Request

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

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

422 Unprocessable Entity

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

423 Locked

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

424 Failed Dependency

424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.

425 Too Early

Появляется в ответ на запрос, который может быть моментально запущен заново. Сервер не рискует и не берется за его обработку, чтобы не подставиться под так называемую «атаку повторного воспроизведения».

426 Upgrade Required

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

428 Precondition Required

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

429 Too Many Requests

Здесь все просто. Ошибка появляется, когда клиент отправляет на сервер слишком много запросов в короткий промежуток времени. Очень похоже на поведение взломщиков. По этой причине запрос моментально блокируется. 

Ошибка 429

431 Request Header Fields Too Large

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

444 No Response

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

449 Retry With

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

450 Blocked by Windows Parental Controls

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

451 Unavailable For Legal Reasons

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

Лого Роскомнадзора

Читайте также

Ошибка сервера 504

Ошибка сервера 403

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

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

Подписаться

Список ошибок на стороне сервера (5xx)

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

500 Internal Server Error

Этот код возникает, когда сервер сталкивается с непредвиденными обстоятельствами. Такими, которые и сам не может пояснить. Как, собственно, и завершить запрос со стороны пользователя. По факту, эта ошибка говорит нам что-то вроде «Я не могу подобрать более подходящий код ошибки, поэтому лови 500 и делай с этим, что хочешь». Мы писали о нем чуть подробнее тут.

Ошибка 500

Дело не в тебе, дело во мне (С)

 Синий экран смерти

501 Not Implemented

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

Иногда в теле ошибки еще пишут что-то в духе «Приходите попозже, возможно, в будущем нужная функция появится».

502 Bad Getaway

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

503 Service Unavailable

Появляется, когда сервер не может обработать запрос клиента по одной из двух технических причин:

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

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

504 Gateway Timeout

Ошибка похожа на 408. Здесь же прокси-сервер пытается выйти на контакт с вышестоящим сервером, но не успевает это сделать до истечения тайм-аута. Отсюда и ошибка.

 Вариант оформления ошибки 504

505 HTTP Version Not Supported

Этот код похож на 426. Он тоже связан с неподходящей версией протокола HTTP. В этом случае нужно обеспечить и клиента, и сервер единой версией. Она, как правило, указывается в запросе со стороны пользователя. 

506 Variant Also Negotiates

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

507 Insufficient Storage

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

508 Loop Detected

Таким кодом сервер отзовется в случае, если заметит бесконечный цикл в запросе клиента. Можно расценивать его как провал запроса и выполняемой операции в целом.

509 Bandwidth Limit Exceeded

Возникает, если сервер начинает потреблять больше трафика, чем ему позволено. 

510 Not Extended

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

511 Network Authentication Required

511 код говорит о том, что перед тем как выйти в сеть, надо авторизоваться (ввести логин и пароль). Можно воспринимать это неким PPPoE подключением, когда от клиента требуются данные для авторизации.

Заключение

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

#Руководства

  • 10 апр 2023

  • 0

Вам придётся её пофиксить. This is the way!

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Иногда сервер не виноват в том, что у вас не открывается веб-страница. Ошибка 504 — как раз об этом. Сервер ждёт, пока ему отдадут информацию, но его «подставляют» и приходится объяснять пользователю, почему всё так произошло.

Ошибка 504 (Gateway Time Out) возникает, когда сервер не получает ответа от сервера-посредника (или сервера-шлюза) за оговорённое время.

Рассмотрим эту ситуацию на примере VPN-сервиса. Когда пользователь включает его и пытается зайти на сайт, сначала отправляет запрос на VPN-сервер. Оттуда запрос перенаправляется на изначальный адрес, и по обратной цепочке ответ возвращается к пользователю. Но если случится так, что VPN-сервер будет слишком долго ожидать ответа от сайта и в итоге не получит его, то он вернёт пользователю ошибку 504.

В примере с VPN ситуация получается вот такой: главным сервером выступает VPN-сервер, к которому подключается пользователь, а сервером-шлюзом — сайт, на который пользователь хочет зайти. Ошибка возникает из-за того, что сайт слишком долго обрабатывал запрос, но при этом с VPN-сервером всё было в порядке. Поэтому мы и получаем именно код 504.

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

Процесс обработки запросов часто выглядит так
Инфографика: Майя Мальгина для Skillbox Media

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

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

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

  • Google Chrome: «Ошибка 504 (Gateway Timeout): Сервер, обрабатывающий ваш запрос, не ответил вовремя».
  • Mozilla Firefox: «Время ожидания ответа сервера истекло».
  • Microsoft Edge: «Hmmm… не получилось загрузить эту страницу».
  • Safari: «Невозможно открыть страницу. На сервере произошла ошибка 504».

А визуально она может выглядеть так:

Скриншот: Cloudflare / Skillbox Media

Скриншот: Cloudflare / Skillbox Media

Скриншот: GitHub / Skillbox Media

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

Давайте ещё раз посмотрим, как возникает ошибка 504 (Gateway Time Out).

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

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

  • Проблемы с сетью. Если интернет-соединение между шлюзом и основным сервером нестабильное или слабое, то первый просто не сможет передать данные, что и приведёт к ошибке 504.
  • Проблемы с настройкой сервера или шлюза. Основной сервер или шлюз могут работать некорректно из-за неправильных настроек на них. Это тоже приводит к ошибке 504.
  • Перегрузка сервера-шлюза. Если сервер-посредник завален запросами от других серверов, он не сможет быстро выполнить свою работу и отдать данные вовремя.
  • Неправильные настройки балансировщика нагрузки. Представьте, что у нас есть два шлюза, но мы запрашиваем данные только из одного из них, хотя оба владеют одинаковой информацией. Такая неэффективность в работе может, опять же, привести к перегрузке одного из серверов.
  • Проблемы с основным сервером. Бывает так, что и основной сервер может работать медленно или быть недоступным, что не позволяет ему принять нужные данные от шлюза.

Если знать причину, проблему легко исправить. Поэтому давайте разберёмся, как всё привести в норму.

Как пользователь, скорее всего, вы не сможете исправить проблему, хотя обычно это касается всех 500-х ошибок, например 500 и 503, потому что они возникают на стороне сервера. Хотя всегда остаётся небольшая вероятность, что проблема действительно на вашей стороне.

Итак, что вам стоит попробовать:

  • Перезагрузите страницу в браузере, чтобы заново отправить запрос и вновь попытаться получить доступ к сайту. Иногда это может сработать.
  • Почистите кэш и файлы cookies. Иногда всё решается за секунду.
  • Проверьте подключение к интернету. Убедитесь, что ваше соединение работает стабильно и быстро (например, попробуйте открыть другие сайты).
  • Запустите сайт в другом браузере. Или установите новый, если у вас в системе пока только обозреватель.
  • Проверьте настройки прокси-сервера. Если вы используете его, то наверняка знаете об этом. А если думаете, что его нет, но проблема возникает на рабочем компьютере — уточните у системных администраторов, скорее всего, прокси-сервер действительно есть.
  • Измените настройки брандмауэра или межсетевого экрана. Они могут блокировать доступ к определённым сайтам или страницам.
  • Временно отключите антивирус. Как и брандмауэр, он тоже может блокировать доступ к некоторым сайтам.
  • Включите VPN. Через VPN можно обойти многие проблемы с ограничением доступа к сайтам, и, возможно, он разрешит ваши трудности.
  • Попробуйте зайти на сайт позднее. Возможно, сайт прямо сейчас испытывает большие нагрузки или проявились какие-то технические проблемы. Поэтому просто подождите, пока всё не исправят.
  • Свяжитесь с администратором сервера. Если зайти на сайт нужно срочно, попробуйте написать в техподдержку. Не факт, что вам ответят (тем более быстро), но как минимум вы уведомите о проблеме команду сайта.

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

Как администратор, вы можете сделать следующее:

  • Написать хостинг-провайдеру или полистать его новости в соцсетях. Обычно там пишут, если возникли какие-то проблемы.
  • Проверить логи сервера. Там обычно есть все ответы.
  • Увеличить тайм-аут шлюза. Раз шлюз не может отправить данные так быстро, попробуйте увеличить тайм-аут.
  • Изменить настройки балансировщика нагрузки. Если он установлен на вашем сайте, попробуйте поменять настройки и посмотреть, изменится ли ситуация.
  • Оптимизировать базу данных. Если проблема возникает, потому что из базы данных запрашивается большой объём информации, попробуйте ускорить доступ к этим данным.
  • Провести апгрейд сервера. Проблема может быть связана с тем, что шлюзу не хватает вычислительной мощности.
  • Скачать все обновления. Устаревшее ПО может замедлять работу сервера. Поэтому стоит держать его в обновлённом состоянии.

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

Чтобы избежать ошибки 504 (Gateway Time Out) в будущем, нужно следить за тем, как ведёт себя сервер и справляется ли он с нагрузками. Если вы вдруг обнаруживаете, что не справляется, пора делать следующее:

  • Проанализировать логи сервера. Часто в них можно найти кучу полезной информации, поэтому не пренебрегайте ими.
  • Оптимизировать код. Быстрый код — быстрый сервер. Логика простая, но на деле, конечно, всё может быть сложнее. Поэтому старайтесь сразу писать эффективный код.
  • Использовать кэширование. Оно ускоряет доступ к контенту и уменьшает нагрузку на сервер. Очень удобно.
  • Использовать балансировщик нагрузки. Он снижает нагрузку на отдельные серверы и позволяет им работать быстрее.
  • Встроить системы мониторинга. Это то же самое, что и логи, но намного эффективнее. Они позволяют заранее выявлять проблемы и быстро их решать.

Однако даже при соблюдении всех этих правил ошибка 504 может возникнуть.

Выводы об ошибке 504 (Gateway Time Out):

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

Научитесь: Профессия Веб-разработчик
Узнать больше

Понравилась статья? Поделить с друзьями:
  • Ошибка 501 при установке фотошопа на макбук
  • Ошибка 5012 canon как исправить
  • Ошибка 501 при установке adobe photoshop mac os
  • Ошибка 5011 на принтере canon
  • Ошибка 501 при установке adobe illustrator mac os