The remote server returned an error 503 server unavailable

Errors happen – there's some unexpected maintenance, a bug that went unnoticed, or a page goes viral and the flood of connections take the server down. If you've been online for any amount of time, no doubt you've seen the somewhat vague 503 Service Unavailable error. In this article we'll go over HTTP status codes, what the 503 error means, and some possible ways to solve it – both for a site you're trying to visit and for your own site. An overview of HTTP status codes Servers that host web

HTTP Error 503 Service Unavailable Explained – What the 503 Error Code Means

Errors happen – there’s some unexpected maintenance, a bug that went unnoticed, or a page goes viral and the flood of connections take the server down.

If you’ve been online for any amount of time, no doubt you’ve seen the somewhat vague 503 Service Unavailable error.

In this article we’ll go over HTTP status codes, what the 503 error means, and some possible ways to solve it – both for a site you’re trying to visit and for your own site.

An overview of HTTP status codes

Servers that host web pages listen for requests from web browsers or devices, also known as clients. The server then uses a bunch of different status codes to communicate back.

These status codes are organized into different classes, which is indicated by the first number of the status code:

  • 1xx: Information – the server is still processing the request
  • 2xx: Success – the request succeeded and the server responds with the page or resource
  • 3xx: Redirection – the page or resource has moved and server will respond with its new location
  • 4xx: Client error – there is an error in the request from the browser or device
  • 5xx: Server error – there is an error with the server

The last two digits of each HTTP status code represent a more specific status for each class. For example, 301 means that a page or resource has moved permanently, while 302 means the move is temporary.

Check out this page for a list of common HTTP status codes and their meaning: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Most status codes go by totally unnoticed, which is fine because it means everything is working. It’s only when you get to the 4xx-5xx range that you might notice a status code because you’ll see a page like this:

E20Ry-1

A typical 503 error page – Source: Stack Overflow

Now that you have a basic understanding of HTTP status codes, let’s dig a bit deeper into the 503 Service Unavailable error.

What does the 503 error code mean?

As mentioned above, 5xx status codes mean there’s a problem with the server itself.

A 503 Service Unavailable error means that the page or resource is unavailable. There are many reasons why a server might return a 503 error, but some common reasons are maintenance, a bug in the server’s code, or a sudden spike in traffic that causes the server to become overwhelmed.

The message that’s sent with the 503 error can vary depending on server it’s coming from, but here are some of the common ones you’ll see:

— 503 Service Unavailable
— 503 Service Temporarily Unavailable
— HTTP Server Error 503
— HTTP Error 503
— Error 503 Service Unavailable
— The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Source

Whatever the reason for the 503 error, it’s usually temporary – the server will restart, traffic will die down, and the issue will resolve itself.

How to solve the 503 Status Unavailable error

When trying to solve a 503 error, there are two general camps.

The first is where you’re an end user, and you’re trying to visit a site that you don’t own. In the second, you own the site, and it’s throwing 503 errors to people who are trying to visit.

The method to solve 503 errors is different depending on which group you fall into. Let’s take a look at some things you can do as an end user if you see a 503 error.

How to solve a 503 Status Unavailable error as an end user

Since 5xx status codes mean that the error is on the server-side, there isn’t a lot you can do directly.

Even though 503 errors are usually temporary, there are some things you can do while you wait.

#1: Refresh the page

Sometimes the error is so temporary that a simple refresh is all it takes. With the page open, just press Ctrl — R on Windows and Linux, or Cmd — R on macOS to refresh the page.

#2: See if the page is down for other people

The next thing you can do is use a service like Is It Down Right Now? or Down For Everyone Or Just Me to see if other people are getting the same error.

Just go to either of those sites and enter in the URL for the page you’re trying to visit.

The service will ping the URL you entered to see if it gets a response. Then it’ll show you some cool stats and graphs about the page:

image-44

Checking freeCodeCamp on Is It Down Right Now?

If you scroll down a bit you’ll see some comments from other people. Often people will give their general location and other data, so this can be a good way to determine if the error is just affecting certain regions or specific devices.

#3: Restart your router

Sometimes the issue has to do with a DNS server failure.

DNS stands for Domain Name System, and they basically act as translators between IP addresses and human readable URLs.

For example, you can visit Google by entering its long IP address directly (172.217.25.206), or you can just enter in the URL, www.google.com.

It’s a DNS, often hosted on a server, that handles all that behind the scenes.

All of that is to say, many routers cache responses from DNS servers (www.google.com <==> 172.217.25.206). But sometimes this cache can get corrupted and cause errors.

An easy way to reset or «flush» the cache is to restart your router. Just unplug your router for about 5 seconds, then plug it back in again.

It should restart after a minute and all of your devices should reconnect automatically. Once they do, try visiting the site again.

How to solve a 503 Status Unavailable error as the site’s owner

If you are the owner/developer of the site that’s returning 503 errors, there’s a bit more you can do to diagnose and resolve the issue.

Here are some general tips to get you started:

#1: Restart the server

Development is tough – even a simple static page can have so many moving parts that it can be difficult to pin down what’s causing the 503 error.

Sometimes the best thing to do is to restart the server and see if that fixes the issue.

1rs7t0-1

Source: imgflip

The exact method of restarting your server can vary, but usually you can access it from your provider’s dashboard or by SSH’ing into the server and running a restart command.

The server should restart after a couple of minutes. If you’ve configured everything to run automatically on boot, you can visit your site and see if it’s working.

#2: Check the server logs

The next thing to do is check the logs.

The location of the server logs can vary depending on what service you’re running, but they’re often found in /var/log/....

Take a look around that directory and see if you can find anything. If not, check the manual for your programs by running man program_name.

#3: Check if there’s ongoing automated maintenance

Some service providers offer automated package updates and maintenance. Normally this is a good thing – they usually occur during downtime, and help make sure everything is up-to-date.

Occasionally 503 errors are due to these scheduled maintenance sessions.

For example, some hosting providers that specialize in WordPress hosting automatically update WP whenever there’s a new release. WordPress automatically returns a 503 Service Unavailable error whenever it’s being updated.

Check with your service providers to see if the 503 error is being caused by scheduled maintenance.

#4: Check your server’s firewall settings

Sometimes 503 Service Unavailable errors are cause by a misconfigured firewall where connections can get through, but fail to get back out to the client.

Your firewall might also need special settings for a CDN, where multiple connections from a small handful of IP addresses might be misinterpreted as a DDoS attack.

The exact method of adjusting your firewall’s settings depends on a lot of factors. Take a look at your pipeline and your service provider’s dashboards to see where you can configure the firewall.

#5: Check the code

Bugs, like errors, happen. Try as you might, it’s impossible to catch them all. Occasionally one might slip through and cause a 503 error.

If you’ve tried everything else and your site is still showing a 503 Service Unavailable error, the cause might be somewhere in the code.

Check any server-side code, and pay special attention to anything having to do with regular expressions – a small regex bug is what caused a huge spike in CPU usage, rolling outages, and about three days of panic for us at freeCodeCamp.

Hopefully you’ll be able to track down the culprit, deploy a fix, and everything will be back to normal.

In summary

That should be everything you need to know about 503 Service Unavailable errors. While there’s usually not much you can do when you see a 503 error, hopefully some of these steps will help the next time you encounter one.

Stay safe, and happy refreshing-until-it-works :)



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

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

Как исправить ошибку 503: исчерпывающее руководство

Что означает ошибка 503

Код 503 сообщает, что запущенный сервис недоступен (Service Unavailable). Чаще всего это ненадолго: например, доступ к ресурсу закрывают на время перезагрузки или для проведения технического обслуживания.

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

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

Что делать пользователю при ошибке 503

Попробуйте выполнить эти действия — есть шанс, что проблема решится.

Проверьте, у всех ли возникает ошибка

Эти онлайн-сервисы покажут, все ли пользователи не могут получить доступ к сайту или ошибка 503 появляется только у вас:

  • Down for Everyone or Just Me;
  • Website Planet;
  • 2IP.

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

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

Подождите и попробуйте позже

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

Перезагрузите устройство

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

Если это не сработало, перезапустите и роутер. Сделать это можно тремя способами.

1. Через панель управления

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

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

2. С помощью кнопки отключения

Кнопка On / Off обычно находится на задней панели роутера. Нажмите на неё, подождите 20–30 секунд и включите устройство снова. Этого времени хватит, чтобы конденсаторы разрядились, чипы памяти перестали получать питание, все временные данные сбросились.

Важно! Не перепутайте кнопку On / Off с Reset, которая не только перезагружает роутер, но также сбрасывает его настройки. Если кнопка утоплена в корпус и, чтобы нажать на неё, требуется спичка или отвёртка, точно не пытайтесь достать её.

3. С помощью отключения из розетки

Выньте адаптер питания из розетки, подождите 20–30 секунд и подключите снова.

Смените DNS-адреса

DNS (Domain Name System — система доменных имён) переводит текстовые URL-адреса сайтов в IP, например https://lifehacker.ru/ в 116.202.209.72. Такой конвертацией занимаются DNS-серверы. Проблемы на них иногда приводят к тому, что вы видите ошибку 503.

К счастью, адреса DNS-серверов можно сменить. Так, вы можете использовать IP публичных DNS Google: 8.8.8.8 и 8.8.4.4 для стандарта IPv4, 2001:4860:4860::8888 и 2001:4860:4860::8844 для нового IPv6. Вот как это сделать.

1. На компьютере с Windows

Нажмите Win + R. В окне «Выполнить» введите ncpa.cpl и нажмите Enter.

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

В списке компонентов найдите пункт «IP версии 4» или «TCP/IPv4», нажмите «Свойства». Установите переключатель «Использовать следующие адреса DNS-серверов», введите 8.8.8.8 и 8.8.4.4 в две строки.

Если в списке компонентов у вас есть «IP версии 6» или «TCP/IPv6», можете аналогично задать адреса 2001:4860:4860::8888 и 2001:4860:4860::8844.

Желательно также сбросить кеш DNS. Для этого снова зажмите Win + R, в окне «Выполнить» введите cmd.

В консоли напишите ipconfig /flushdns и кликните Enter.

2. На компьютере с macOS

Зайдите в меню «Системные настройки» — «Сеть». Если слева внизу вы видите иконку с закрытым замком, кликните по ней и в появившемся окне введите пароль администратора.

Кликните по нужному подключению и выберите в меню пункт «Дополнительно».

На вкладке DNS нажмите на «+» и добавьте адреса в список.

Очистите кеш DNS. Запустите терминал, напишите команду sudo killall -HUP mDNSResponder. Затем нажмите Return и введите пароль администратора.

3. На роутере

Зайдите в панель управления роутера и найдите пункт с адресами DNS-серверов — они могут быть в настройках DHCP. Введите два адреса нужного формата (IPv4 или IPv6) — в зависимости от того, что поддерживает ваше устройство.

Очистите кеш YouTube на Android

На Android-устройствах ошибка 503 в приложении YouTube иногда возникает из-за повреждённой информации в кеше. Попробуйте очистить его, чтобы сервис снова заработал. Действуйте так.

Зайдите в настройки. В списке приложений найдите YouTube.

Остановите его работу и нажмите «Очистить кеш». Затем снова запустите приложение.

Уменьшите список воспроизведения YouTube

Иногда ошибка 503 возникает, когда в вашем списке воспроизведения «Смотреть позже» слишком много видео. Попробуйте уменьшить его, а затем перезагрузите страницу или приложение.

Свяжитесь с администрацией ресурса

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

Что делать администратору при ошибке 503

Всё зависит от движка вашего сайта и его настроек. Выбирайте подходящие варианты и проверяйте, решило ли это проблему.

Установите параметр Retry After

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

Пересмотрите время выполнения регулярных заданий

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

Установите защиту от DDoS-атак

Это также запросы, которые поступают в общую очередь. Избавитесь от них — сможете быстрее предоставлять пользователям доступ к своему ресурсу.

Не передавайте крупные файлы через HTTP

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

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

Удалите тяжёлые или устаревшие компоненты CMS

Попробуйте по очереди отключать компоненты вашей CMS и смотреть, как меняется ситуация. Если вы нашли потенциальный источник проблемы, попробуйте обновить этот компонент. Или подумайте, как обойтись без него — например, заменить на более новый и быстрый аналог.

Объедините ресурсы в один файл, чтобы уменьшить число запросов

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

Уберите соединения с удалёнными серверами

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

Бывает, что в скриптах вместо локальных путей используются глобальные, формата http://…. Они также воспринимаются как запросы к удалённому серверу и замедляют работу.

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

Оптимизируйте MySQL-запросы

Если вы используете MySQL и часть запросов выполняется достаточно медленно, некоторые хостинги автоматически создают файл логов mysql-slow.log. В нём собираются наиболее проблемные обращения к базе данных. Проанализируйте их и по возможности выполните оптимизацию.

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

Установите антилич

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

Установите кеширующие компоненты

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

Проконсультируйтесь с хостером

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

Читайте также 👩‍💻💻🎮

  • Как исправить ошибку CPU Fan Error при загрузке компьютера
  • Как очистить кеш браузера
  • 21 способ ускорить интернет, если всё висит
  • Что означает 404 Not Found и другие ошибки веб-страниц
  • Что делать с ошибкой «Запуск этого устройства невозможен. (Код 10)» в Windows 10

Contents

  1. Cause of HTTP Error 503
  2. Rapid-Fail Protection
  3. Debugging HTTP Error 503
  4. Fixing HTTP Error 503
  5. Common 503 substatus codes
  6. Conclusion
  • Author
  • Recent Posts

Surender Kumar has more than twelve years of experience in server and network administration. His fields of interest are Windows Servers, Active Directory, PowerShell, web servers, networking, Linux, virtualization, and penetration testing. He loves writing for his blog.

Latest posts by Surender Kumar (see all)

  • Extending LVM space in Ubuntu — Thu, Feb 2 2023
  • Backup in Proxmox VE — Thu, Jan 26 2023
  • Snapshots in Proxmox VE — Wed, Jan 25 2023

Cause of HTTP Error 503

HTTP Error 503 is another very common error you might face with an IIS-hosted website in addition to the 500 – Internal server error.

HTTP Error 503. The service is unavailable

HTTP Error 503. The service is unavailable

The primary reason for this error is a stopped or disabled application pool. The application pool is the IIS component that initiates a worker process, which then allows the web server to process incoming requests for a website. When something is wrong with the application pool, the web server throws an HTTP Error 503.

Rapid-Fail Protection

There can be various reasons for an application pool failure, such as an unhandled exception in the code, an expired password for the application pool identity, or something else. By default, IIS is configured to disable a malfunctioning application pool if its worker process faces five consecutive crashes within a period of five minutes. This setting is known as Rapid-Fail Protection, which is available under the Advanced Settings of an application pool. This is shown in the following screenshot:

Viewing or modifying the rapid fail protection setting for an application pool

Viewing or modifying the rapid fail protection setting for an application pool

  • Enabled—The value True indicates that the rapid-fail protection feature is active, which is the default. Set the value to False to disable it.
  • Failure Interval (minutes)—The time interval to specify the number of minutes (by default, 5) to count the failures for a process.
  • Maximum Failures—The maximum number of failures that are allowed within the time interval mentioned above (by default, 5).

While troubleshooting an application pool-related problem, you can modify these parameters, if needed.

Debugging HTTP Error 503

To determine the exact reason why the application pool is disabled or stopped, open the Event Viewer, navigate to the System log, and look for error or warning events whose source is Windows Process Activation Service (WAS). WAS is responsible for starting/stopping the application pool and keeping track of worker processes in the IIS.

The following screenshot shows that the application pool is disabled because its identity is invalid:

Checking the system log to identify the cause of application pool failure

Checking the system log to identify the cause of application pool failure

If you couldn’t find anything in the System log, take a look in the Application log since the ASP.Net-related exceptions are logged there. As discussed above, when a worker process experiences five fatal errors or exceptions within five minutes, rapid-fail protection kicks in and automatically disables the faulting application pool.

Based on event logs, if you conclude that the reason for application pool failure is a bug in the application code, but you still want to keep the application pool running until your developer fixes it, you could temporarily adjust the behavior of rapid-fail protection, either by increasing the Maximum Failures or the Failure Interval to a higher value. You could even disable this feature by using the following PowerShell command:

(Get-IISAppPool awesomewebsite.com).failure.rapidFailProtection
Set-WebConfigurationProperty '//*[@name="awesomewebsite.com"]//failure' -Name rapidFailProtection -Value $False

Viewing and disabling the rapid fail protection for an application pool with PowerShell

Viewing and disabling the rapid fail protection for an application pool with PowerShell

Remember that the rapid-fail protection feature is there for the safety of the web server, so disabling it shouldn’t be considered a solution to the problem. Instead, fixing the underlying cause (or bug causing the behavior) in the application code is really important. Anyway, disabling it sometimes comes in handy if developers are taking longer to fix the bug; meanwhile, you want to keep the web application up and running. Once rapid-fail protection is disabled, the web server won’t disable the faulting application pool, and visitors will no longer see HTTP Error 503.

Fixing HTTP Error 503

A simple resolution for HTTP Error 503 is to start the application pool corresponding to your website. If you get an application pool identity-related error or warning, make sure the username and password for the identity are correct. If a custom username is used, make sure its password is not expired. If possible, set the password to never expire for that user.

If the application pool stops repeatedly but there is no application pool identity-related error in the system log, the issue is likely due to some fatal error or unhandled exception in the code. In that case, the application log can give you some useful insights. The following screenshot shows a typical error logged in the application log that occurred due to an unhandled exception:

Checking the application log to identify the cause of application pool failure

Checking the application log to identify the cause of application pool failure

If you see such errors or warnings, notify your application developers, and ask them to fix the exception. If needed, share the detailed error message recorded in the event log.

Common 503 substatus codes

The following table covers the common HTTP 503 substatus codes, along with their possible causes and troubleshooting advice:

Status Code Possible Cause Troubleshooting Advice
503.0 The application pool is unavailable The application pool is either stopped or disabled. To fix this error, start the application pool corresponding to your website. If it fails repeatedly, check the event log to understand why it is failing. We covered how to fix this error above.
503.2 The concurrent request limit has exceeded The appConcurrentRequestLimit is a serverRuntime attribute that specifies the maximum concurrent requests (with a default value of 5000) that can be queued for application. The 503.2 error indicates that this limit has been exceeded. To resolve this error, you can increase the value using the following command:

%SystemRoot%System32inetsrvappcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

If you get ERROR ( message:Unknown attribute «appConcurrentRequestLimit». Replace with -? for help. ) while running this command, use the following command instead:

%SystemRoot%System32inetsrvappcmd.exe set config /section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000
503.3 The ASP.NET queue is full The requestQueueLimit attribute specifies the maximum number of requests (with a default value of 1000) that can be queued by the ASP.NET process. When this queue is full, the 503.3 error is returned. To resolve this error, set the Queue Length attribute to a higher value in the application pool’s advanced settings. See this image for reference. Usually, exceeded queue length is a sign of a server unable to keep up with the requests. Therefore, you could use performance counters to understand why the server is struggling.
503.4 The FastCGI queue is full This error occurs when the FastCGI process queue is full. To fix this error, increase the value of the Queue Length attribute for your FastCGI process. To do so, open the IIS Manager, click the server name, and double-click FastCGI Settings. Now, double-click the FastCGI process for the particular PHP version that your application is using, and increase the value of Queue Length. See this image for reference.

Subscribe to 4sysops newsletter!

Conclusion

You can see that, like most IIS errors, HTTP Error 503 can be fixed with the help of detailed errors and failed request tracing. However, in the event of application pool-related errors, the HTTP.sys driver throws the 503.0 error because the application pool isn’t available to handle the request. Thus, the detailed error or failed request tracing rule is not even triggered. In such situations, you can rely on Windows event logs to troubleshoot.

Imagine someone searches for a topic and finds your website on page one of Google. When they click through to your website, though, their eyes land on a bland webpage that says «Service Unavailable».

Marketer frustrated with an http error 503.

What do you think they’ll do when they find your website on Google again? Odds are, they’ll skip over it and click on the next link. If visitors are looking for answers and you’re promising them those answers, but you can’t deliver because something’s wrong with your website, they’ll lose trust in your brand.

Unfortunately, if your website experiences a 503 Service Unavailable Error, there’s no silver bullet solution. You have to investigate what’s actually causing the issue, because even though these types of errors indicate what happened to your website, they don’t tell you why it happened.

To help you fix your 503 Service Unavailable Error and avoid losing potential customers, check out our guide on what exactly the issue is and its most common solutions.

→ Download Now: SEO Starter Pack [Free Kit]

A 503 Service Unavailable Error is an HTTP response status code that indicates your web server operates properly, but it can’t handle a request at the moment. Since it’s just a generic error message, it’s difficult to pinpoint the issue’s exact cause.

When your website is experiencing a 503 Service Unavailable Error, your site’s visitors will land on an error page. Fortunately, Airbrake recommends five common solutions for troubleshooting most 503 Service Unavailable Errors.

How to Fix an HTTP Error 503

  1. Reboot your server.
  2. Check to see if your web server is going through maintenance.
  3. Fix faulty firewall configurations.
  4. Sift through your server-side logs.
  5. Comb through your website’s code to find bugs.

1. Restart your server.

Sometimes, there will be congestion in the server chain that hosts your website. One of the most effective ways to open up and refresh it is to simply restart your web server. If your website is hosted on multiple servers, make sure you restart all of them to get it running again.

2. Check to see if your web server is going through maintenance.

Most web servers shut down when they’re going through maintenance. If you can access your server’s administration settings, check the configuration options to see when automatic maintenance sessions are scheduled. If you’d rather have complete control over your server’s maintenance, you can disable these automatic updates in the configuration options, too.

3. Fix faulty firewall configurations.

Your firewall is your website’s gatekeeper, protecting your site from malicious visitors or distributed denial-of-service (DDoS) attacks. Sometimes, a faulty firewall configuration will cause your firewall to deem requests from a content delivery network as an attack on your server and reject them, resulting in a 503 Service Unavailable Error. Check your firewall configuration to pinpoint and fix the issue.

4. Sift through your server-side logs.

There are two types of server-side logs — applications logs and server logs. Application logs recount your website’s entire history, letting you see the web pages requested by visitors and the servers it connected to. Server logs provide information about the hardware running your server, revealing details about its health and status. Sift through both types of server-side logs to uncover any alarming information about your server or website.

5. Comb through your website’s code to find bugs.

If there’s a mistake in your website’s code, your web server might not be able to correctly answer requests from a content delivery network. Comb through your code to find bugs or copy your code into a development machine. It’ll perform a thorough debug process that will simulate the exact situation your 503 Service Unavailable Error occurred in and allow you to find the exact moment things went wrong.

Any time there’s an error on your site, it’s important to fix it as soon as you can. If customers get errors, they probably won’t come back to your page.

Editor’s note: This post was originally published in January 2019 and has been updated for comprehensiveness.

marketing

Ошибка 503 (ERROR Service Unavailable с англ. «Сервис временно недоступен») — это код ответа сервера, который говорит о том, что по техническим причинам сервер не в состоянии обработать текущий запрос. Простыми словами, ошибка 503 — это ответ сервера при его медленной работе, большом количестве запросов или подвисания определенных скриптов на сайте.

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

Почему возникает ошибка 503

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

Группа 1. Излишнее количество запросов, отправляемых к серверу

Здесь можно выделить как минимум пять источников ошибки.

  1. Хакерские атаки. Подобная техника вывода сайта из строя характерна, например, для DDoS-атак.
  2. Решение: установите на свой сайт CloudFlare или другой защитный экран.

  3. Разобщение ресурсов. Необходимые для отображения страницы компоненты загружаются в качестве самостоятельных запросов. Вместо того чтобы загружать медиафайлы (например, изображения или анимации), JavaScript и «стили» одним файлом, все эти компоненты разрознены. И, соответственно, они отправляются по разным запросам.
  4. Решение: удалите лишние неиспользуемые скрипты, внедрите кэширование страниц, уменьшите размер изображений, обязательно продиагностируйте CSS.

  5. Внедрение скриптов или URL. Если вы пытаетесь задействовать JavaScript на чужом сайте, будьте готовы, что сервер выдаст 503-й ответ. То же самое касается попыток внедрения информеров или любых URL на изображения сайта.
  6. Решение: установка антилич-плагина для используемой 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]

  7. Определенный компонент сайта постоянно отправляет запросы на веб-сервер. Это вредно, бесполезно и ухудшает быстродействие сервера + увеличивает скорость загрузки вашего сайта. В качестве такого компонента могут выступать разные элементы: виджет, установленная тема или какой-либо плагин. Допустим, вы захотели внедрить на коммерческую страницу окно с чатом. Если оно создано на базе AJAX — а это весьма распространенный сценарий — готовьтесь к бесконечному количеству запросов и увеличению нагрузки на сервер.
  8. Решение: найти компонент, который постоянно отправляет запросы на сервер, и отключить его. Если вы затрудняетесь обнаружить такой элемент самостоятельно, свяжитесь с поддержкой используемого хостинга.

  9. Нагрузка, создаваемая краулерами поисковых систем или других сервисов. Пауки «Гугла», «Яндекса» и других поисковых систем автоматически обходят все сайты в интернете. Да, вы можете добавить рекомендательные директивы в файл robots.txt, но чаще всего краулеры их не соблюдают. Еще более серьезную нагрузку могут создавать пауки сторонних сервисов, например, краулеры Netpeak, Megaindex, Serpstat.
  10. Рекомендательная директива для краулера Google, запрещающая индексацию сайта

    Рекомендательная директива для краулера Google, запрещающая индексацию сайта

    Решение: в robots.txt укажите конкретных user-agent’ов, которые создают серьезную нагрузку на сайт. Если это не помогло, попробуйте заблокировать конкретные IP-адреса. В случае с краулерами такой подход чаще всего не сработает: у них обычно не статические IP.

  11. Плагины вCMS. Если вы вебмастер и проблема возникает на вашем сайте, обращайте внимание на установленные в CMS плагины: часто они конфликтуют друг с другом или, например, с темой сайта.
  12. Решение: Попробуйте отключить те плагины, которые вы устанавливали недавно и понаблюдайте за проблемной страницей. Если она открылась, значит причина была именно в каком-то из плагинов, а точнее — внутренних ошибках, которые создавал такой плагин. Если вы не знаете, какой именно плагин является причиной ошибки, отключите их все. Затем начните включать поэтапно, а затем проверяйте доступность проблемной страницы. Если дело было в плагине, рано или поздно страница откроется без ошибки. После нахождения плагина-виновника удалите его через административную панель вашей CMS или замените другим с аналогичным функционалом.

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

Решение: Диагностировать эту причину можно, задав соответствующий вопрос в саппорт хостинга. Специалист технической поддержки сообщит о перебоях в работе сервера.

Создаем тикет в саппорте хостинга и спрашиваем о перебоях в работе серверов

Создаем тикет в саппорте хостинга и спрашиваем о перебоях в работе серверов

Группа 2. Негативное воздействие одного или нескольких скриптов

В этой группе можно выделить 5 причин появления сбоя.

  1. «Тяжелые» запросы, отправляемые к базе данных MySQL. Если число таких запросов велико, ошибка может появляться время от времени. Решение для вебмастера — глобальная оптимизация запросов, отправляемых в SQL.
  2. Решение: индексация таблицы базы данных непосредственно по колонкам из выборки. MySQL хорош тем, что все «тяжелые» запросы автоматически фиксируются в папке logs:

    В этом файле содержится список всех неоптимизированных запросов

    В этом файле содержится список всех неоптимизированных запросов

    Вы без проблем найдете все «медленные» запросы и сможете оптимизировать их в дальнейшем, либо просто заменить.

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

    Обязательно убедитесь, что проблемная страница может установить соединение с БД MySQL. В противном случае и будет возникать 503 ответ сервера.

  3. Слишком «тяжелые» скрипты. Даже 1-2 плохо оптимизированных скрипта могут создавать колоссальную нагрузку на сервер.
  4. Решение: ресурсоемкие сценарии должны быть отключены или заменены на те, которые не создают высокой статической нагрузки.

    Статистику нагрузки аккаунта можно посмотреть в административной панели хостинга

    Статистику нагрузки аккаунта можно посмотреть в административной панели хостинга
  5. Передача файлов большого размера непосредственно через PHP. Этот источник сбоя возникает при попытке передать статичные файлы через какие-либо скрипты, например, при помощи средств того же PHP. Это некорректный подход.
  6. Решение: перестать передавать статичные файлы больших размеров через скрипты. Если вам нужно отправить очень тяжелый файл, лучше делайте это через FTP. Статичные файлы серьезного размера должны передаваться исключительно прямым образом, без участия скриптов.

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

  7. Регулярное использование почтовых сервисов. Каждый раз, когда скрипт e-mail-рассылки инициализируется, возрастает нагрузка на сервер.
  8. Решение: изучайте лимиты по суммарному числу емейлов, которые допустимо отправлять через используемый вами хостинг.

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

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

    Встроенный планировщик заданий в административной панели хостинга Beget

    Встроенный планировщик заданий в административной панели хостинга Beget

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

Решение: соединение с таким веб-сервером нужно минимизировать, а лучше вообще избавиться от него.

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

Пример начального тарифного плана на одном из российских хостингов

Пример начального тарифного плана на одном из российских хостингов

Как еще исправить ошибку 503: дополнительные советы пользователю

  1. Напишите в саппорт сайта и уточните, почему не открывается страница. Обычно email для технических вопросов вынесен отдельно на странице контактов.
  2. Email технической поддержки сайта вынесен отдельно

    Email технической поддержки сайта вынесен отдельно
  3. Отключите сетевое оборудование (например, Wi-Fi роутер) примерно на 2-3 минуты. Это поможет, если ошибка возникает на уровне IP-адреса. При перезагрузке сетевого оборудования вашему устройству будет присвоен новый IP, а проблемы с открытием страницы будут решены. Этот способ сработает только в том случае, если ваш интернет-провайдер присваивает вам динамический, а не статический адрес.
  4. Обновите проблемную страницу с очисткой кэша. Для этого используйте сочетание горячих клавиш Control + F5. Полезно также целиком очистить все временные файлы в используемом браузере.
  5. Очищаем историю, файлы куки и кэш браузера

    Очищаем историю, файлы куки и кэш браузера

    При такой очистке вы автоматически выйдете из всех аккаунтов (на всех сайтах), где прошли авторизацию ранее.

  6. Откройте проблемную страницу через другой браузер. В очень редких случаях браузер может идентифицировать 503-й ответ сервер ошибочно. Изменение браузера поможет диагностировать этот источник ошибки. Вы также можете просто закрыть браузер и запустить его заново. Если причина возникновения ошибки связана только с текущей сессией, перезагрузка браузера также решит эту проблему.
  7. Перезагрузите систему. В редких случаях причиной ошибки может быть сбой ОС. Он может возникать как на уровне системного, так и стороннего ПО. Перезагрузка системы в вышеуказанных сценариях станет решением.

Резюме

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

Понравилась статья? Поделить с друзьями:
  • The remote server returned an error 500 internal server error как исправить
  • The remote server returned an error 415 unsupported media type
  • The remote server returned an error 409 conflict
  • The remote server returned an error 407 proxy authentication required
  • The remote server returned an error 405 method not allowed