Про location
Что это? Отличия от Apache?
Отличия:
- У apache создается процесс на каждый клиентский запрос (либо поток, зависит от конфигурации), у nginx мастер-процесс и воркеры (каждый воркер может обслуживать тысячи соединений) которые отвлекаются только на новые события и поэтому даже при высоких нагрузках у nginx относительно равномерное потребление ресурсов
- Apache может генерировать динамический контент, а nginx’у для этого нужен компаньон (apache или какой-либо модуль) на который он будет проксировать такие запросы (у этого есть свои плюсы, раз интерпретатор не встроен в каждого воркера то при нагрузке независимо от того как долго обрабатывается динамика, статика отдается одинакого быстро)
- В apache есть .htaccess с одной стороны это удобно но с другой это медленнее, у nginx один конфигурационный файл
- В apache модули подключаются на лету, для nginx нужно пересобирать ядро сервера (это считается безопаснее)
- Apache обрабатывает запрос как путь в файловой системе к файлу который нужно обработать, а nginx обрабатывает их сначала как uri и при необходимости транслирует их в запросы к файловой системе (потому что nginx и вэб-сервер и прокси-сервер)(эта разница ярко видна в конфигах)
- В apache все хосты работают с одной версией php (если он сконфигурирован с mod_php), в nginx все раздельно (удобнее мониторить и больше разнообразия)
(beget) Клиент просит установить модули nginx: pushstream, google pagespeed. Что делать?
Nginx собран с поддержкой этих двух модулей и многих других, но в глобальном конфиге они не подключены, потому что не нужны. Чтобы что-то включить придется проделать много работы поэтому у таких клиентов нужно узнать а так уж и нужен ли им этот модуль, если да то путь идут на выделенный сервер или впс.
Как nginx обрабатывает запрос (server_name, listen)? Изучить статью http://nginx.org/ru/docs/http/request_processing.html
Обработка запросов.Мой конспект
Какие типы location бывают?
- (none) — location интерпретируется как префикс (то есть он будет искать более длинное совпадение)
- = — при совпадении дальше искать не станет
- ~ — регистрочувствительная регулярка
- ~* — регистроНЕчувствительная регулярка
- ^~ — приоритетная регулярка
- @ — именованный location
Порядок обработки директив location.
Статья на хабре про порядок обработки location
- Вначале будет искаться равенство (=). Оно имеет высший приоритет
- Потом будет искаться максимальный по длине префиксный location (( ) или (^~)), после чего будет проверено, есть ли на найденном location модификатор приоритета (^~), и если он есть, то будет возвращён этот location
- Потом будут проверяться регулярные выражения ((~) и (~*)) сверху вниз. При совпадении будет возвращён первый location из них
- Потом вернётся тот префиксный location, который мы нашли до этого
Также бывают вложенные location’ы, но это сложнее и описано в статье
Как сделать wildcard на nginx?
yii nginx/apply-template idud.in wildcard изменит в конфиге имя сервера наserver_name swan9250.bget.ru *.swan9250.bget.ru;
Также через customer_info можно изменить текущий шаблон
Если вручную менять конф nginx’a (дописать .domain.com в server_name) то и в конфиге apache тоже нужно будет дописать ServerAlias
Для чего нужна директива root?
Задает корневой каталог для запросов
(beget) error_page 404 = @apache
Можно указать файл,например:erorr_page 500 502 503 504 /50x.html;
либо как в вопросе направить в именованный location для дальнейшей обработки
(beget) Таймауты ожидания для апстрима. Значения по умолчанию, как увеличить? Какую ошибку отдаст nginx по истечении таймаута?
504 Gateway Time-out
- Если апач ничего не отдает в течение 120 (таково значение proxy_read_timeout)
- Стандартное время ожидания Апача ответа от скрипта: 60 секунд. При превышении возникнет 504 ошибка
- Стандартное количество активных процессов Apache: 30 шт (на серверах 300). При превышении лимиов видим ошибку 503 (отдаётся Nginx’ом))
Изменить таймаут можно выбрав подходящий шаблон.
Апстрим некорректно разорвал TCP-сессию(например, процесс апача был убит 9-м сигналом), какую ошибку отдаст nginx? В каких логах можно найти информацию об этом?
502 — Bad Gateway
На сервере лежат логи nginx’а (в логсторадже нет), ncd
переносит тебя в папку с логами.
(beget) Почему при шаблоне default на изображения не добавить водяные знаки используя php? Как это исправить?
Php работает в apache, а статика отдается nginx’ом поэтому запрос не доходит до php (водяные знаки накладываются налету, ена сервере картинки лежат без них)
Шаблон apache_js_css_watermark
(beget) Где сжатие описано в конфигах? Как его отключить? Как разрешить пользователю настраивать параметры сжатия?
По умолчанию сжатие включено, его можно отключить применив подходящий шаблон
(beget) Что надо сделать, чтобы пользователь мог настраивать заголовки (кэширования, Access-Control-Allow-Headers…)?
Направить все на apache и там в .htaccess он сможет это делать (точнее он сможет делать то что можно делать через .htaccess) (шаблон apache_all)
(beget) Поддерживается ли SNI в Бегете?
да
(beget) Зачем мы просим клиента покупать выделенный ip для установки платных SSL сертификатов?
Потому что наша инфраструктура строилась раньше чем появился SNI
Он есть просто нужно переписать много кода чтобы его включить
(beget) Поддерживается ли HTTP2 в Бегете?
да
(beget) Как включить/выключить поддержку HTTP2 для домена?
Все автоматом по http2 если есть сертификат (потому что ssl ip идет по http2)
Чтобы вернуться на http1 нужен выделенный ip (в cp есть инструкция как и что сделать)
Limit_req, limit_req_zone, burst
limit_req_zone ключ zone=название:размер rate=скорость [sync];
Задаёт параметры зоны разделяемой памяти, которая хранит состояние для разных значений ключа. Состояние в частности хранит текущее число избыточных запросов. В качестве ключа можно использовать текст, переменные и их комбинации. Запросы с пустым значением ключа не учитываются.
limit_req zone=название [burst=число] [nodelay | delay=число];
Задаёт зону разделяемой памяти (zone) и максимальный размер всплеска запросов (burst). Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит максимальный размер всплеска. При превышении запрос завершается с ошибкой. По умолчанию максимальный размер всплеска равен нулю
То есть, limit_req_zone определяет зону (ключ, размер зоны, с какой скоростью в ней обрабатываются запросы), потом эта зона по имени используется в limit_req и там добавляется параметр burst в котором определяется размер всплеска запросов которые не будут отклонены а просто задержатся чтобы соответсвовать скорости указанной в limit_req_zone, при превышении допустимого всплеска лишние запросы завершаются с ошибкой (по умолчанию 503)
delay определяет начиная с какого избыточного запроса включать задержку (чтобы соответствовать значению rate в limit_req_zone, либо не использовать задержку вообще)
https://nginx.org/ru/docs/http/ngx_http_limit_req_module.html#limit_req
(beget) В каких шаблонах и при каких условиях nginx может отдавать код 503, 405?
- default_request_rate
- default_begetok_request_rate
-
ddos
во всех них есть такие строки: 1 запрос в секунду, 1 запрос всплеска и они оба будут обработаны сразу, а все остальные будут отброшены с ошибкой 503 (третий запрос за секунду отбрасывается, анологично но сдругими цифрами в других шаблонах)
limit_req_zone $beget_uri zone=beget_uri_1:1007m rate=1r/s;
limit_req zone=beget_uri_1 burst=1 nodelay;
405 отдает в четырех случаях описанных в default
(beget) Описание шаблонов overloaded, ddos, cache, begetok, shellblock, viruses. Отличие их от default.
Изменения относительно дефолтного шаблона
-
overloaded
- Отключает сжатие
- 403 на POST-запросы
- 503 (ограничение на количество запросов в секунду)(req_limit)
- Кэш живет дольше для раных кодов ответа (кэширование ошибок)
-
ddos = overloaded — (минус)
limit_req zone=beget_ua_1 burst=1 nodelay;
- cache — запрещает кэш в /wp-admin/, нужен чтобы не отдавались куки с данными админки (это бегеток плюс location с wp-admin в котором дериктивы про заголовки)
- shell_block — по крону каждые 10 минут запускается скрипт и проверяет все запросы в access.log за последние 10 минут на предмет вирусни. Если находит то начинает мониторить запросы, если запрашивается стремный файл то запрос блокируется (снимать шаблон надо самому, а ставится он автоматически)
-
viruses
- Отдает 403 на sql инъекции
- 403 на POST-запросы
- begetok — защищает сайт от ботов (если нет куки «begetok» то направляет на страницу где выставляется эта кука (и так до бесконечности)(кроме наших сетей, их обходит стороной))
(beget) Блокировки xmlrpc.php, sql.gz, useragent, etc. Как реализовано в конфиге? Как отключить? Как включить обратно?
В конфиге есть переменные которые переопределяются в зависимости от запроса (например если в запросе есть .sql.gz и sqldumps_disable = N, то переменная block_sql_dumps становится = 1)
map "$uri:$sqldumps_disable" $block_sql_dumps {
"~*.sql(.gz)?:N$" 1;
}
установить «Y» в нужные переменные в конфиге, это нужно делать через yii
Ошибка 503 (ERROR Service Unavailable с англ. «Сервис временно недоступен») — это код ответа сервера, который говорит о том, что по техническим причинам сервер не в состоянии обработать текущий запрос. Простыми словами, ошибка 503 — это ответ сервера при его медленной работе, большом количестве запросов или подвисания определенных скриптов на сайте.
Логика появления сбоя следующая: все запросы обрабатываются в порядке живой очереди, при этом самые «тяжелые» из них ждут дольше всего, а простые обрабатываются в первую очередь. Но даже сама очередь всегда ограничивается определенным числом запросов: если поступающий запрос выходит за ее пределы, сервер отдает 503-й код.
Почему возникает ошибка 503
Мы подготовили 2 группы источников ошибки. Внимательно изучите каждую, и без труда найдете виновника сбоя.
Группа 1. Излишнее количество запросов, отправляемых к серверу
Здесь можно выделить как минимум пять источников ошибки.
- Хакерские атаки. Подобная техника вывода сайта из строя характерна, например, для DDoS-атак.
- Разобщение ресурсов. Необходимые для отображения страницы компоненты загружаются в качестве самостоятельных запросов. Вместо того чтобы загружать медиафайлы (например, изображения или анимации), JavaScript и «стили» одним файлом, все эти компоненты разрознены. И, соответственно, они отправляются по разным запросам.
- Внедрение скриптов или URL. Если вы пытаетесь задействовать JavaScript на чужом сайте, будьте готовы, что сервер выдаст 503-й ответ. То же самое касается попыток внедрения информеров или любых URL на изображения сайта.
- Определенный компонент сайта постоянно отправляет запросы на веб-сервер. Это вредно, бесполезно и ухудшает быстродействие сервера + увеличивает скорость загрузки вашего сайта. В качестве такого компонента могут выступать разные элементы: виджет, установленная тема или какой-либо плагин. Допустим, вы захотели внедрить на коммерческую страницу окно с чатом. Если оно создано на базе AJAX — а это весьма распространенный сценарий — готовьтесь к бесконечному количеству запросов и увеличению нагрузки на сервер.
- Нагрузка, создаваемая краулерами поисковых систем или других сервисов. Пауки «Гугла», «Яндекса» и других поисковых систем автоматически обходят все сайты в интернете. Да, вы можете добавить рекомендательные директивы в файл robots.txt, но чаще всего краулеры их не соблюдают. Еще более серьезную нагрузку могут создавать пауки сторонних сервисов, например, краулеры Netpeak, Megaindex, Serpstat.
- Плагины вCMS. Если вы вебмастер и проблема возникает на вашем сайте, обращайте внимание на установленные в CMS плагины: часто они конфликтуют друг с другом или, например, с темой сайта.
- Отключение сервера. Еще одна причина, о которой мы не сказали выше — временное отключение сервера (например, при возникновении хакерских атак на хостинг или на время выполнения регламентных работ по обслуживанию машин).
Решение: установите на свой сайт CloudFlare или другой защитный экран.
Решение: удалите лишние неиспользуемые скрипты, внедрите кэширование страниц, уменьшите размер изображений, обязательно продиагностируйте CSS.
Решение: установка антилич-плагина для используемой CMS или же самостоятельное прописывание такого кода в файле htaccess:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш сайт.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.yandex.ru
[NC]RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.ru [NC]
RewriteCond %{REQUEST_URI}
!^/название_изображения_которое_будет_выводиться_на_других_сайтах.png [NC]
RewriteRule .(gif|jpg|jpeg|png|swf)$ http://
Ваш_сайт.ру/название_изображения_которое_будет_выводиться_на_других_сайтах.png [R,NC]
Вам понадобится кастомизировать этот код под свои нужды. Например, так:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?http://ваш_сайт.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.yandex.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.ru [NC]
RewriteCond %{REQUEST_URI} !^/antipic.jpg [NC]
RewriteRule .(gif|jpg|jpeg|png|swf)$ http:/ваш_сайт.ru/antipic.png [R,NC]
Решение: найти компонент, который постоянно отправляет запросы на сервер, и отключить его. Если вы затрудняетесь обнаружить такой элемент самостоятельно, свяжитесь с поддержкой используемого хостинга.
Решение: в robots.txt укажите конкретных user-agent’ов, которые создают серьезную нагрузку на сайт. Если это не помогло, попробуйте заблокировать конкретные IP-адреса. В случае с краулерами такой подход чаще всего не сработает: у них обычно не статические IP.
Решение: Попробуйте отключить те плагины, которые вы устанавливали недавно и понаблюдайте за проблемной страницей. Если она открылась, значит причина была именно в каком-то из плагинов, а точнее — внутренних ошибках, которые создавал такой плагин. Если вы не знаете, какой именно плагин является причиной ошибки, отключите их все. Затем начните включать поэтапно, а затем проверяйте доступность проблемной страницы. Если дело было в плагине, рано или поздно страница откроется без ошибки. После нахождения плагина-виновника удалите его через административную панель вашей CMS или замените другим с аналогичным функционалом.
Решение: Диагностировать эту причину можно, задав соответствующий вопрос в саппорт хостинга. Специалист технической поддержки сообщит о перебоях в работе сервера.
Группа 2. Негативное воздействие одного или нескольких скриптов
В этой группе можно выделить 5 причин появления сбоя.
- «Тяжелые» запросы, отправляемые к базе данных MySQL. Если число таких запросов велико, ошибка может появляться время от времени. Решение для вебмастера — глобальная оптимизация запросов, отправляемых в SQL.
- Слишком «тяжелые» скрипты. Даже 1-2 плохо оптимизированных скрипта могут создавать колоссальную нагрузку на сервер.
- Передача файлов большого размера непосредственно через PHP. Этот источник сбоя возникает при попытке передать статичные файлы через какие-либо скрипты, например, при помощи средств того же PHP. Это некорректный подход.
- Регулярное использование почтовых сервисов. Каждый раз, когда скрипт e-mail-рассылки инициализируется, возрастает нагрузка на сервер.
- Взаимодействия с программным сервером. Самый частый сценарий — подключение к удаленному серверу. Это сулит дополнительные сложности: совершение ненужных HTTP-запросов, появление тайм-аутов, обрывы связи, излишнее ожидание ответа.
Решение: индексация таблицы базы данных непосредственно по колонкам из выборки. MySQL хорош тем, что все «тяжелые» запросы автоматически фиксируются в папке logs:
Вы без проблем найдете все «медленные» запросы и сможете оптимизировать их в дальнейшем, либо просто заменить.
Помочь также может внедрение кэширования страниц, изменение темы сайта (эта причина обнаруживается чаще, чем другие), отключение неоптимизированных плагинов. Иногда проблем настолько много, что решить их сразу может только переезд на другую систему управления контентом.
Обязательно убедитесь, что проблемная страница может установить соединение с БД MySQL. В противном случае и будет возникать 503 ответ сервера.
Решение: ресурсоемкие сценарии должны быть отключены или заменены на те, которые не создают высокой статической нагрузки.
Решение: перестать передавать статичные файлы больших размеров через скрипты. Если вам нужно отправить очень тяжелый файл, лучше делайте это через FTP. Статичные файлы серьезного размера должны передаваться исключительно прямым образом, без участия скриптов.
При прямой передаче статичных файлов используется отдельный процесс, поддерживающий большое количество потоков. Такой процесс в состоянии работать сразу с несколькими запросами и без влияния на скорость подгрузки компонентов страницы.
Решение: изучайте лимиты по суммарному числу емейлов, которые допустимо отправлять через используемый вами хостинг.
Важно и время запуска скрипта почтовой рассылки. Его лучше настроить на тот период, когда статическая нагрузка вашего сайта на сервер является наименьшей: например, глубоко ночью или очень рано утром.
Настраивайте расписание самой рассылки через функцию крон в административной панели выбранного хостинга, а не сторонними способами, например, через плагины для CMS.
Решение: соединение с таким веб-сервером нужно минимизировать, а лучше вообще избавиться от него.
Еще одна причина появления 503 ошибки, которая не относится ни к первой, ни ко второй группе источников — это начальные тарифные планы хостинга. На них существуют значительные ограничения по допустимой нагрузке на сервер и он может не справляться даже с небольшой посещаемостью. Особенно это касается бесплатных хостингов.
Как еще исправить ошибку 503: дополнительные советы пользователю
- Напишите в саппорт сайта и уточните, почему не открывается страница. Обычно email для технических вопросов вынесен отдельно на странице контактов.
- Отключите сетевое оборудование (например, Wi-Fi роутер) примерно на 2-3 минуты. Это поможет, если ошибка возникает на уровне IP-адреса. При перезагрузке сетевого оборудования вашему устройству будет присвоен новый IP, а проблемы с открытием страницы будут решены. Этот способ сработает только в том случае, если ваш интернет-провайдер присваивает вам динамический, а не статический адрес.
- Обновите проблемную страницу с очисткой кэша. Для этого используйте сочетание горячих клавиш Control + F5. Полезно также целиком очистить все временные файлы в используемом браузере.
- Откройте проблемную страницу через другой браузер. В очень редких случаях браузер может идентифицировать 503-й ответ сервер ошибочно. Изменение браузера поможет диагностировать этот источник ошибки. Вы также можете просто закрыть браузер и запустить его заново. Если причина возникновения ошибки связана только с текущей сессией, перезагрузка браузера также решит эту проблему.
- Перезагрузите систему. В редких случаях причиной ошибки может быть сбой ОС. Он может возникать как на уровне системного, так и стороннего ПО. Перезагрузка системы в вышеуказанных сценариях станет решением.
При такой очистке вы автоматически выйдете из всех аккаунтов (на всех сайтах), где прошли авторизацию ранее.
Резюме
Мы убедились, 503 ошибка чаще всего появляется на стороне вебмастера. Среди самых частых сценариев можно назвать некорректные параметры на уровне сайта или внутри самого хостинга. Проверяйте их в первую очередь, и лишь потом разбирайте второстепенные варианты, описанные нами выше.
Когда сервер временно не может обработать запрос пользователя, он передает в браузер ответ об ошибке 503. Отсутствие доступа к сайту имеет негативные последствия как для посетителя, который не может просматривать нужный контент, так и для владельца веб-ресурса, рискующего потерять трафик и конверсию. Чаще всего причиной ошибки являются неправильные настройки сервера или движка, с помощью которого создан сайт (CMS). Их исправлением занимается администратор веб-ресурса. Однако иногда уведомление с кодом 503 возникает из-за сбоев на стороне пользователя. Такие неполадки легче и быстрее исправить, и сделать это может посетитель веб-ресурса самостоятельно. В данной статье мы разберем несколько способов устранения ошибки 503, которые могут предпринять администратор и пользователь сайта.
Что значит ошибка 503 Service Unavailable
Ошибка 503 Service Unavailable — это уведомление, которое отправляет сервер, чтобы сообщить о появлении технических неполадок и временной невозможности обработать запрос пользователя. Сообщение появляется на веб-странице, которую пытался открыть посетитель, если на сайте есть проблемный скрипт, на сервер поступает больше запросов, чем он может обработать, или на устройстве и сетевом оборудовании пользователя возникли проблемы с настройками.
Ошибка 503 на сайте означает, что сервер в порядке, но в данный момент недоступен. Чтобы хостинг-компьютер снова начал корректно отвечать браузеру, необходимо найти причину поломки. Это поможет выбрать правильное решение проблемы. Перечислим возможные источники «Error 503»:
- DDoS-атаки и вирусы, приводящие к перегрузке сервера;
- несогласованная работа компонентов веб-страницы (медиаконтента, стилей и скриптов) — элементы каждого уровня запрашиваются и отправляются отдельно;
- последствия хотлинка — сервер тратит трафик и другие вычислительные ресурсы на ответ посетителям других сайтов (если в чужие веб-страницы встроены файлы, хранящиеся на вашем сервере);
- непрерывное обращение к веб-серверу одного из элементов сайта — плагина, виджета, темы;
- сканирование сайта поисковыми роботами и парсерами;
- конфликты плагинов CMS;
- отключение сервера для обслуживания;
- направление большого количества тяжелых запросов к базе данных;
- наличие недостаточно оптимизированных скриптов;
- отправка объемных статичных файлов при помощи скриптов;
- работа почтового сервера — регулярная рассылка большого количества сообщений;
- подключение к удаленному серверу — может привести к лишним HTTP-запросам, тайм-аутам, обрывам связи и т. д.
Пользователю не стоит сразу отказываться от попыток восстановить работоспособность сайта и искать новый сервис. Error 503 может возникнуть из-за проблем с его компьютером, модемом, операционной системой, программным обеспечением и браузером. Если не устранить причину сбоя, ошибка будет систематически возникать и при посещении других веб-ресурсов. К тому же от него не требуется выполнения сложных действий или больших временных затрат — проверка наличия проблем на стороне пользователя займет всего несколько минут.
Как исправить ошибку 503 владельцу сайта
К ошибке HTTP 503 чаще всего приводят сбои, происходящие на сервере. Их исправление — ответственность владельца веб-сайта. Решение некоторых проблем не требует особых навыков, для других придется обратиться к вебмастеру или техническому специалисту с опытом в администрировании серверов.
Перезагрузка сервера
Так же как перезагрузка модема и маршрутизатора помогает пользователям очистить кэш DNS-серверов, в котором накопился проблемный код, и вернуть доступ к веб-ресурсу, так и перезапуск сервера необходим администраторам для избавления от некоторых ошибок и восстановления работоспособности сайта. Если вы арендуете сервер или его часть у хостинг-провайдера, для перезагрузки сервера вам потребуется войти в панель управления хостингом и выполнить несколько действий:
-
Выберете нужный заказ и откройте вкладку «Администрирование».
-
Перейдите в пункт «Управление операционной системой» и нажмите кнопку «Перезагрузить».
На перезапуск системы уйдет всего несколько минут.
Автоматическое обслуживание
Даже хорошо оптимизированный веб-ресурс не может работать 100% времени. Сервер и расположенный на нем сайт могут стать временно недоступными при выполнении некоторых видов технических работ:
- установке обновлений операционной системы и приложений;
- проверке безопасности системы и поиске вредоносных программ;
- автоматическом обновлении CMS и ее компонентов (тем, плагинов) и так далее.
График проведения мероприятий по автоматическому обслуживанию сообщается администраторам сайтов заранее. Если предупредить пользователей о возможном появлении проблем с доступом к веб-ресурсу в определенный период времени, можно сократить количество отказов от просмотра сайта при появлении ошибки 503.
Проверка настроек конфигурации брандмауэра
Неправильно настроенный брандмауэр сервера может принять несколько связанных IP-адресов за DDOS-атаку. При выставлении параметров брандмауэра ориентируйтесь на особенности выбранной CMS и характеристики вашего веб-сервера.
Обратитесь в службу технической поддержки
Если сайт недоступен и установить причину своими силами не удалось, обратитесь в службу технической поддержки хостинга. Специалист саппорта сообщит о технических работах и времени их окончания или поможет установить другой источник ошибки 503. В Интернет Хостинг Центре обратиться за помощью можно через раздел «Задать вопрос» в панели управления хостингом или через чат. При создании тикета необходимо подробно описать проблему и приложить скриншот.
Снижение нагрузки на сервер
Существует несколько способов справиться с большим количеством запросов, адресуемых серверу. Каждый из них подойдет для решения конкретной проблемы:
- Установка защитного экрана, например, CloudFlare, для защиты от хакерских атак и других угроз безопасности.
- Оптимизация и удаление лишних скриптов для быстрой обработки запросов.
- Выбор антилич-плагина, поддерживаемого вашей CMS, для защиты от хотлинка.
- Удаление компонентов, постоянно обращающихся к серверу.
- Запись в robots.txt пользовательских приложений (user agent), создающих нагрузку на сайт.
- Проверка совместимости плагинов и тем друг с другом путем их попеременного отключения и тестирования работы сайта без них.
- Обмен объемными файлами большого размера по протоколу FTP.
- Организация рассылки в период сниженной нагрузки на сервер, например, ранним утром.
- Контроль над количеством email-сообщений, отправляемых одновременно.
Как решить проблему, если вы — пользователь
Ошибка 503 происходит на сервере, и если ее обнаружил пользователь веб-ресурса, он может сообщить об этом владельцу сайта и подождать устранения проблемы. В получении контактов поможет сервис Whois, который проверяет регистрационные данные домена и содержит информацию о его арендаторе. Однако такое решение может занять большое количество времени, кроме того, не часто, но код 503 может появляться из-за ошибок на компьютере и сетевом оборудовании пользователя. Что пользователь может предпринять самостоятельно, чтобы убедиться, что он не является причиной временно отсутствия доступа к веб-ресурсу:
- Отключите от питания сетевое оборудование на три минуты. Если ошибка происходила из-за проблем с IP пользователя, после включения роутера адрес поменяется и сайт снова станет доступным.
- Перезагрузите модем. Если причина в ПО внешних устройств, передающих вам трафик, может помочь перезагрузка сетевого оборудования.
- Очистите кэш и другие временные файлы в браузере. Для этого воспользуйтесь сочетанием клавиш Ctrl+F5.
- Смените браузер или перезапустите его. Это поможет избавиться от ошибок в текущей сессии и понять, является ли браузер источником ошибки.
- Перезагрузите операционную систему. Сбой в ОС и программном обеспечении будет исправлен автоматически при новом запуске компьютера.
Заключение
Способов устранения ошибки 503 так же много, как и причин ее появления. Пока администратор сайта решает сложные технические вопросы, пользователь может проверить на причастность к сбоям собственную технику и установленное на ней ПО.
Похожие статьи
-
Пока вы ждете загрузки сайта в окне браузера, на его сервере происходит обработка запроса, в результате чего он выдает или не выдает вам нужную информацию. Часто в процессе выполнения пользовательского запроса возникают различные ошибки, и вместо страницы мы получаем сообщения вроде Error 401, 404, 504 и т. п. Это значит, что что-то пошло не так и сайт не смог выполнить запрашиваемое действие. Цифры в названии ошибки означают ее код. Он указывает на наличие определенного типа проблемы. Одной из самых распространенных является формулировка «403 Forbidden Error». В статье мы расскажем, что делать, когда появляется 403 ошибка на сайте, что это означает, почему возникает и как ее устранить.
-
Чтобы на веб-странице появился контент, браузер должен получить от сервера, на котором расположен сайт, необходимые данные. Когда на устройстве пользователя, на веб-сервере или на другом промежуточном узле (например, прокси) возникают неполадки, вместо содержимого сайта в браузере появляется страница с ошибкой. Для устранения сбоя, необходимо знать, на чьей стороне он произошел и по какой причине. Понять, что является источником проблемы, помогает цифровой код ошибки. Если он имеет формат 5xx, значит, сбой происходит на стороне сервера. Разбираем в статье ошибку 504 на сайте и способы ее устранения.
-
Посещая сайты в интернете, мы часто натыкаемся на различные ошибки при загрузке. Часть из них вызвана проблемами на стороне сервера, многие связаны с настройками пользовательского устройства, некоторые возникают из-за сбоев в работе интернет-служб. Страница «Error 1020 Access Denied» обычно открывается на веб-сайтах, которые используют сервисы компании Cloudflare (сеть доставки контента (CDN), защиты от DDoS-атак, DNS-серверы), когда та блокирует IP-адрес пользователя. Но существуют и другие причины, по которым возникает ошибка 1020 на сайте. Мы разберем ситуации, когда проблема носит локальный характер, и подскажем, как устранить эту неисправность на стороне пользователя.
-
Здравствуйте, Гость! Предложение любых услуг в данном разделе запрещено! Все подобные темы будут незамедлительно удаляться.
-
Автор темы
Avest
-
Дата начала
21 Мар 2015
- Статус
- В этой теме нельзя размещать новые ответы.
-
#1
Господа, никак давно как вчера с утра у меня стала вылезать 503 ошибка при заходе на мой сайт:
Service unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Вся трагичность ситуации в том что сайт прекрасно открывается как у хостера, так и у людей с др регионов. Никаких фатальных манипуляций предшествующих этой беде не проводилось, хостер посоветовал обратиться к провайдеру, провайдер(ростелеком) сказал что это проблемы сайта, ибо от них доступ в сеть идет и это ошибка непосредственно сайта. При проведении ping через ОС он даже не доходит до их серверов (Превышен срок жизни TTL при передаче пакета). Как быть? Кого винить, хостера или провайдера? И с чего вдруг неоткуда могла возникнуть эта трабла.Может кто сталкивался с такой проблемой.
-
#2
Если сайт открывается из других регионов то хостер не причем.
-
#3
Скиньте адрес сайта в личку, или здесь в теме. У меня тоже Ростелеком. Попробую зайти.
-
#4
Скиньте адрес сайта в личку, или здесь в теме. У меня тоже Ростелеком. Попробую зайти.
убрал ссылку
P.S. Сайт может выдавать др ошибку, ибо я сейчас откатываюудаляюперезаливаю. Главное узнать выдает ли 503 ошибку
Последнее редактирование: 21 Мар 2015
-
#5
P.S. Сайт может выдавать др ошибку, ибо я сейчас откатываюудаляюперезаливаю. Главное узнать выдает ли 503 ошибку
Вам xостера другого надо. У меня тоже не открывает. Но тут дело не в провайдере. Да, выдает.
Последнее редактирование: 21 Мар 2015
-
#6
Вам xостера другого надо. У меня тоже не открывает. Но тут дело не в провайдере. Да, выдает.
Замечательно, а вы с какого региона? Хост beget, до этого недели две все юзалось без нареканий. Чего с хостингом то могло случиться?
-
#7
Замечательно, а вы с какого региона? Хост beget, до этого недели две все юзалось без нареканий. Чего с хостингом то могло случиться?
С Оренбурга. Вот,
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
просто задайте ребятам в чат вопрос, возможно ли решить данную проблему. Уверен, что больше сюда не будет смысла писать, если поинтересуетесь у ниx, и изъявите желание перееxать к ним. Без преувеличения говорю.
Последнее редактирование: 21 Мар 2015
-
#8
С Оренбурга. Вот,
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрацияпросто задайте ребятам в чат вопрос, возможно ли решить данную проблему. Уверен, что больше сюда не будет смысла писать, если поинтересуетесь у ниx, и изъявите желание перееxать к ним. Без преувеличения говорю.
Переехать на другой хост — это слишком просто. Мне нужно понять суть траблы во избежание повторения. И честно говоря винить хостинг как то в последнюю очередь думается…
-
#9
И честно говоря винить хостинг как то в последнюю очередь думается…
Улыбнуло. Вините тогда себя.
Вы на бесплатном тарифе на beget?
Последнее редактирование: 21 Мар 2015
-
#10
Улыбнуло. Вините тогда себя.
Вы на бесплатном тарифе на beget?
На платном
-
#11
Exile знает решение, но пока молчит) К нему надо.
-
#12
Ошибка 503:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
— проблема со стороны сервера, т.е. в вашем случае хостера.
Exile знает решение, но пока молчит) К нему надо.
Я тут вообще при чем? :O_o:
-
#13
Господа, появилась одна не маловажная деталь — через тор спокойно заходит на сайт. Получается провайдер блочит?
-
#14
Avest, получается с вашего IP слишком много соединений с сервером в итоге оно начинает блокировать новые. Наверное что-то вроде чата, статистики еще установлено?
-
#15
Avest, получается с вашего IP слишком много соединений с сервером в итоге оно начинает блокировать новые. Наверное что-то вроде чата, статистики еще установлено?
В предшествующий проблеме день я как раз установил яндекс метрику на сайт. Думаете оно?
UPD. Выпилил метрику, но проблема осталась
Вообщем провайдер пропел старую песню, что ошибка серверная, мы ничего не блокируем если это не нарушает законодательство, а как минимум с города доступа нет не у кого. Прям бермудский треугольник какой то
Последнее редактирование: 21 Мар 2015
-
#16
У меня сейчас открылся, всё норм, не ростелеком.
-
#17
У меня сейчас открылся, всё норм, не ростелеком.
Сейчас вроде все работает, скрестив пальчики надеюсь что так оно и продолжится. Так что возможно одна из сторон прозрела проблему и исправила. Или это была какая то временная проблема.
-
#18
Проблема скорее в хостере идет DDDOs он блокирует маски и у вас он посто попал под маску, советую сменить хостера
Рефералка немного дорого но хостер отличный
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
-
#19
bucefal82, выше дана ссылка на причины, ничего другого быть не может. Вопрос у автора решен и тема закрыта.
- Статус
- В этой теме нельзя размещать новые ответы.
Контакты
ООО «АЕЗА ГРУПП»
ИНН 2312304914
ОГРН 1212300056430
г. Краснодар, ул. Маяковского 160, офис 2.4
#статьи
- 10 мар 2023
-
0
Рассказываем о сбое, который часто возникает из-за высокой нагрузки на сервер и может принести огромные убытки.
Иллюстрация: Оля Ежак для Skillbox Media
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Все «пятисотые» HTTP-коды ответа говорят о том, что на сервере неполадки. Например, ошибка 503, о которой пойдёт речь в статье, возникает, когда сайт не может обработать запрос пользователя в данный момент. Разберёмся, почему так происходит и как с этим справиться.
Всё, что нужно знать об ошибке 503:
- Что это такое
- Почему возникает ошибка
- Как её исправить
- Как избежать появления проблем
Service Temporarily Unavailable (переводится как «сервис временно недоступен»), или «ошибка 503», — это ошибка, которая говорит нам о том, что сайт перегружен или на нём что-то сломалось.
На экране это может выглядеть так:
503 Service Temporarily Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Additionally, a 503 Service Temporarily Unavailable error was encountered while trying to use an ErrorDocument to handle the request. Apache Server at www.example.com Port 80
Или так:
Скриншот: Skillbox Media
Ключевое слово здесь — «временно»: через несколько минут нагрузка на сайт, скорее всего, снизится, и позже всё заработает в обычном режиме. В общем, «повторите попытку чуть позже». Этим код ответа 503, кардинально отличается, скажем, от ошибки 500, которая ничего хорошего в ближайшем будущем не обещает.
Однако не стоит относиться к 503-й ошибке как к какой-то мелочи. Например, за полчаса, пока «сервис временно недоступен», ваш интернет-магазин не продаст ничего — а вы недополучите прибыли, причём это могут быть миллионы рублей. Не говоря о том, что часть покупателей, которым вместо желанного товара предложили зайти позже, могут обидеться и уйти к конкурентам.
Поэтому давайте выясним, как избежать возникновения 503-й ошибки, а также как быстро всё исправить, если она всё-таки произошла.
Прежде всего разберёмся, как выглядит нормальное общение сервера с пользователем.
Пользователь вводит в адресную строку название сайта, а затем нажимает Enter. Сразу после этого браузер отправляет запрос на сервер, чтобы получить запрашиваемую страницу. Тот должен ответить — то есть вернуть HTML-страницу. На этом процесс завершён: пользователь зашёл на сайт, сервер выполнил свою работу корректно.
Иллюстрация: Skillbox Media
Но это в идеале, пока с сервером всё хорошо. Если же с ним начнутся проблемы — в ответ он тоже начнёт сбоить в коммуникациях и выдавать тот самый HTTP-код 503. Перечислим самые распространённые случаи, когда что-то идёт не так:
- Ограничения самого сервера. Если он способен обработать 100 запросов в секунду, а ему приходит 300, в ответ он начинает вести себя как классическая продавщица из сельпо. То есть в духе: «Не кричите, граждане, встаньте в очередь, вас тут много, а я одна».
- Аварийные случаи. Например, полетел жёсткий диск или произошёл сбой в работе ПО. Это неизбежно скажется на производительности, а может вовсе привести к полному отказу. Если дальше проводить аналогию с живыми людьми, назовём эту ситуацию «Сервер на больничном».
- Техническое обслуживание. Ничто не может вечно работать в режиме 24/7. Время от времени сисадмины должны проводить диагностику оборудования, чистить память, обновлять ПО и так далее. Пока они этим занимаются — считайте, что сервер в отпуске.
Бывает, что проблема возникает не по вине самого сайта. Например:
- Проблемы с интернет-соединением. Они могут возникнуть как со стороны сервера, так и со стороны клиента. Допустим, он отправил запрос, сервер его честно обработал, отправил обратно, а на том конце провода его не приняли, потому что соединение оборвалось. Результат — код ответа 503, хотя сайт здесь ни при чём.
- Неправильные настройки сети. Wi-Fi-роутер может блокировать некоторые сайты, а значит, пользователь не сможет получить ответ от этих сайтов.
Конечно, последние две ситуации происходят гораздо реже, поэтому проблема, скорее всего, — в сервере. Но на всякий случай всё же не помешает проверить соединение и настройки Wi-Fi.
Хотя сам код, начинающийся с пятёрки, указывает на то, что проблема, как было сказано выше, на 90% со стороны сервера, попытаться её устранить могут обе стороны. Для этого есть разные лайфхаки.
На самом деле — не так уж много, но тем не менее:
- Обновите вкладку браузера. Иногда простые действия приводят к положительным результатам. Нажмите кнопку F5, сочетание клавиш Ctrl + R (Command + R для MacOS) или специальную кнопку в меню браузера. Вероятность, что проблема решится, — низкая, но не нулевая.
- Перезапустите браузер. Так вы сбросите текущую сессию соединения и создадите новую. Если дело было в этом, ошибка пропадёт.
- Очистите кэш, удалите файлы cookies. В них может сохраняться много лишней информации при обмене веб-данными. Поэтому просто удалите их. Это никак не навредит вашему компьютеру.
- Убедитесь, что дело не в вашем компьютере. Попробуйте открыть страницу с другого устройства и, желательно, при помощи другого интернет-соединения. Если проблема сохраняется — значит, это действительно проблема с той стороны.
- Перезагрузите компьютер. Причина ошибки может скрываться в сбоях на уровне ОС или другого ПО. Ещё одно простое решение, которое может помочь, но не всегда.
- Перезагрузите Wi-Fi-роутер. Проблема может быть именно в нём, поэтому попробуйте перезагрузить его через приложение или нажав на кнопку питания.
Если ничто из перечисленного не помогает, остаётся только одно — ждать.
Давайте огласим весь список проблем, пусть он и сильно пересекаестя с тем, что описано выше:
- Работа сервера. Убедитесь, что он запущен и функционирует правильно. Проверьте логи на наличие ошибок или проблем. Часто причину можно обнаружить там.
- Нагрузка на сервер. Возможно, он перегружен и не может обрабатывать все запросы. Чтобы исправить это, увеличьте ресурсы сервера (например, добавьте больше оперативной памяти или процессорной мощности), если это возможно.
- Настройки сервера. Убедитесь, что всё настроено правильно и нет ограничений на количество одновременных подключений.
- Настройки балансировщика нагрузки. Если вы используете балансировщик нагрузки для распределения трафика на несколько серверов, убедитесь, что его настройки оптимальны.
- Настройки DNS. Убедитесь, что DNS-записи настроены правильно, а DNS-серверы работают корректно. Проблемы с DNS могут привести к тому, что сервер не сможет получить правильный IP-адрес и обработать запрос.
- Наличие обновлений. Проверьте, есть ли доступные обновления для вашего ПО, и установите их.
Если исправить ошибку 503 самостоятельно не получилось, обратитесь за помощью к специалистам из технической поддержки или хостинг-провайдера.
Главный совет, как избежать не только этой, но большинства других ошибок, — проводите анализ с помощью логов. Там есть всё, что нужно: причины ошибок, нагрузка и многое другое.
А теперь — прочие лайфхаки:
- Увеличьте ресурсы. Если сайт часто бывает перегружен, стоит задуматься над тем, чтобы повысить его производительность, — например, увеличить объём памяти или добавить процессорной мощности. Это затратно, но эффективно.
- Используйте кэширование. Оно снижает нагрузку, ускоряет загрузку страниц и уменьшает количество запросов к нему.
- Оптимизируйте код. Медленный код — большая нагрузка. Поэтому есть повод привести его в порядок.
- Применяйте балансировщики нагрузки. Они помогут более рационально распределить запросы между несколькими серверами. Это уменьшит нагрузку на отдельные узлы и обеспечит их более высокую доступность.
- Установите системы мониторинга. Снова отсылка к логам. Мониторинг позволяет быстро обнаруживать проблемы и решать их до того, как всё начнёт гореть.
Итак, краткая памятка по HTTP-коду 503 (ошибке Service Temporarily Unavailable):
- Она возникает, когда сайт не может обработать запрос пользователя.
- Она встречается на любом сайте — даже на том, где всё, казалось бы, хорошо.
- Причины могут быть разными — например, перегрузка, устаревшее ПО или сбой в работе.
- Если ошибка возникла, стоит проверить логи, а затем попробовать перезапустить сервер.
- Чтобы избежать ошибки, нужно оптимизировать работу сайта, использовать балансировщики нагрузки, встроить системы мониторинга.
Научитесь: Профессия Python-разработчик
Узнать больше