Http error 503 the service is unavailable web service

I'm really new to setting up web servers in general. I've got IIS 8 on Windows 8, and I'm trying to set up a little site locally, while doing some development. In IIS I choose Add Site, give a name,

I’m really new to setting up web servers in general. I’ve got IIS 8 on Windows 8, and I’m trying to set up a little site locally, while doing some development. In IIS I choose Add Site, give a name, points to a location where I have a index.html file (I’ve tried different locations, latest in a c:inetpubwwwroottest -folder) and otherwise use all default settings. However, when I try to browse to localhost I get

HTTP Error 503. The service is unavailable.

I’ve verified the pool is started, and I’ve given IIS_IUSRS Full Control on the target folder

I’ve search around but not found anything that solved my issue, and there’s nothing helpfull in the EventLog or in the C:WindowsSystem32LogFilesHTTPERR folder

Could anyone tell me what’s wrong?

weir's user avatar

weir

4,4322 gold badges27 silver badges41 bronze badges

asked Nov 10, 2012 at 14:33

Andreas's user avatar

4

It could be that the user identity is outdated, especially if you’ve tried starting a stopped app pool and the next request again fails.

In IIS, go to the Application Pools under the Server, then find the correct Application Pool for your web site, and click on it. On the Advanced Settings menu to the right, select Identity and change it and enter new user and password. Click on your Application Pool again, and select Recycle to restart it.

You can also try looking at the error message in Event Viewer, under Windows Logs, Application, Details tab.

Broots Waymb's user avatar

Broots Waymb

4,6553 gold badges30 silver badges51 bronze badges

answered Oct 30, 2013 at 13:02

live-love's user avatar

live-lovelive-love

46.3k22 gold badges227 silver badges197 bronze badges

8

Other answers are fine. But in my case, I was working on a Windows box that already was running some old IIS, IISExpress or any other web site. What happened is urls ACLs where reserved somehow in the system. So, you might want to check this.

Here is the console command to dump all URL acls:

netsh http show urlacl

Check what’s returned here, and if anything matches the url you are testing, here is the command to delete one URL acl (for example):

netsh http delete urlacl url=http://localhost:2018/

(beware to carefully note what you do here in case it was not related to the original problem)

answered Jan 16, 2015 at 14:11

Simon Mourier's user avatar

Simon MourierSimon Mourier

128k20 gold badges246 silver badges291 bronze badges

5

In my case the problem was the DefaultAppPool. I changed the «Load User Profile» to false and now it works. However, I don’t know if there are side effects to this.

enter image description here

Further reading on setting the Load User Profile option: What exactly happens when I set LoadUserProfile of IIS pool?

TylerH's user avatar

TylerH

20.5k62 gold badges75 silver badges97 bronze badges

answered Apr 18, 2014 at 16:54

Juan Carlos Puerto's user avatar

2

Check your application’s respective Application Framework Pool — it could be stopped. If it is, start it and check again.

If you’re still experiencing issues you can also check out Event Viewer to find the cause of that error in order to troubleshoot more.

Robotnik's user avatar

Robotnik

3,5452 gold badges32 silver badges48 bronze badges

answered Oct 25, 2013 at 10:20

Scoolsam's user avatar

ScoolsamScoolsam

5714 silver badges3 bronze badges

1

If the app pool is running under some specific user identity, then go to the advanced settings and update the username and password again to ensure they are correct.

TylerH's user avatar

TylerH

20.5k62 gold badges75 silver badges97 bronze badges

answered Aug 16, 2013 at 15:17

Mahboob Alam's user avatar

0

If the app pool immediately stops after you start it and your event log shows:

The worker process for application pool ‘APP_POOL_NAME’ encountered an
error ‘Cannot read configuration file ‘ trying to read configuration
data from file ‘?’, line number ‘0’. The data field contains
the error code.

… you may experiencing a bug that was apparently introduced in the Windows 10 Fall Creators Update and/or .Net Framework v4.7.1. It can be resolved via the following workaround steps, which are from this answer to the related question Cannot read configuration file ‘ trying to read configuration data from file ‘\?<EMPTY>’, line number ‘0’.

  1. Go to the drive your IIS is installed on, eg. C:inetpubtempappPools
  2. Delete the directory (or virtual directory) with the same name as your app pool.
  3. Recycle/Start your app pool again.

I have reported this bug to Microsoft by creating the following issue on the dotnet GitHub repo: After installing 4.7.1, IIS AppPool stops with «Cannot read configuration file».

EDIT

Microsoft responded that this is a known issue with the Windows setup process for the Fall Creators Update and was documented in KB 4050891, Web applications return HTTP Error 503 and WAS event 5189 on Windows 10 Version 1709 (Fall Creators Update). That article provides the following workaround procedure, which is similar to the one above. However, note that it will recycle all app pools regardless of whether they are affected by the issue.

  1. Open a Windows PowerShell window by using the Run as administrator
    option.
  2. Run the following commands:
    • Stop-Service -Force WAS
    • Remove-Item -Recurse -Force C:inetpubtempappPools*
    • Start-Service W3SVC

answered Nov 27, 2017 at 15:33

weir's user avatar

weirweir

4,4322 gold badges27 silver badges41 bronze badges

1

Or if none of the current solutions work, look in your website’s directory for a file called app_offline.htm. That basically tells IIS that your site is unavailable and to show this page instead.

To fix it, either delete it or rename it to app_offline.htm.bak.

In my case, I added it while showing a colleague how to use that to prevent traffic to the site temporarily and then forgot that I did that on my box. Sigh.

answered Oct 15, 2015 at 14:50

Hallmanac's user avatar

HallmanacHallmanac

5292 gold badges8 silver badges14 bronze badges

0

Start by looking in Event Viewer, either under the System or the Application log.

In my case the problem was that no worker process could be started for the App Pool because its configuration file couldn’t be read — I had included an extra ‘.’ at the end of its name.

answered Mar 22, 2013 at 15:36

Samuel Jack's user avatar

Samuel JackSamuel Jack

32.3k16 gold badges117 silver badges155 bronze badges

It is possible that your domain requires the account used for running the AppPool to have batch logon rights. In which case you will see this same error message. The way you can tell if that is the case, is by looking at the System events in the Event Viewer. There should be an event saying that the account being used with the App Pool has either ‘the wrong password or does not have batch logon rights’.

This is why developers quite often use IIS Express on their development machine, since it by passes the batch logon rights issue.

answered Jan 30, 2013 at 14:56

Hashim Akhtar's user avatar

Hashim AkhtarHashim Akhtar

7772 gold badges10 silver badges16 bronze badges

I ran into the same issue, but it was an issue with the actual site settings in IIS.

Select Advanced Settings... for your site/application and then look at the Enabled Protocols value. For whatever reson the value was blank for my site and caused the following error:

HTTP Error 503. The service is unavailable.

The fix was to add in http and select OK. The site was then functional again.

answered Oct 17, 2013 at 20:31

atconway's user avatar

atconwayatconway

20.3k28 gold badges153 silver badges226 bronze badges

2

For my case, My Default Application Pool was offline.

To troubleshoot the problem, I checked the IIS logs located in C:WindowsSystem32LogFileHTTPERR. Scroll down to the most recent error logs, this will show you problems with IIS if any.

My Error was «503 1 AppOffline DefaultPool»

Solution

  • Open IIS Manager
  • Click on Application Pools, this lists all application pool to your right.
  • Check if the application pools hosting your api or site has a stop sign on it. If so, right click the application pool and click start.
  • Try again to access your service from the client

Ryan M's user avatar

Ryan M

17.3k30 gold badges60 silver badges71 bronze badges

answered Jun 22, 2018 at 14:54

mut tony's user avatar

mut tonymut tony

3377 silver badges9 bronze badges

Check Event Viewer — Windows — Application. If there is a red Error line made from IIS-W3SVC-WP and the message is like The Module DLL C:Windowssystem32inetsrvrewrite.dll failed to load. The data is the error. then you are missing some Windows Setup features.

In Windows Server 2012 go to Server Manager, Add Roles and Features, Web Server (IIS) and add the matching feature. Usually, most of the Application Development section is installed. Here is a complete list of IIS features and their associated DLL to help in diagnosis.

After going through a few iterations of that I ended on the error message above regarding «rewrite.dll». This led to a direct download and install of Microsoft URL Rewrite tool. Finally all websites came to life.

answered Nov 10, 2014 at 19:25

SushiGuy's user avatar

SushiGuySushiGuy

1,49317 silver badges20 bronze badges

2

Our server ran out of disk space on Sunday afternoon which led to an application suddenly failing and returning HTTP error 502. The logs were empty so it had to be something that was occurring before IIS even did anything.

A swift look at the event viewer(WIN+R > eventvwr) exposed the issue.
enter image description here

It’s a good idea to filter out the output of the System and Application windows to WAS since it can get pretty verbose in there.

The application depended on another one which was disabled. Therefore keep in mind an application can go down indirectly if one of it’s dependent processes has gone down. We simply re-enabled the .NET application pool and our other application started running normally again.

answered Feb 27, 2017 at 17:05

Patrick.SE's user avatar

Patrick.SEPatrick.SE

4,3635 gold badges33 silver badges44 bronze badges

If you have IIS URL Rewriting installed it could be to do with that. I suffered issues after a Windows 10 Update.

This StackOverflow post helped me.

Go to Windows Control Panel > Programs and Features > IIS URL Rewrite Module 2 > Repair.

Community's user avatar

answered Apr 25, 2016 at 11:23

ᴍᴀᴛᴛ ʙᴀᴋᴇʀ's user avatar

ᴍᴀᴛᴛ ʙᴀᴋᴇʀᴍᴀᴛᴛ ʙᴀᴋᴇʀ

2,7341 gold badge26 silver badges38 bronze badges

1

In my case, the problem was that another application was using the port that I had bound to my web site.

I found it by running the following command from a command line, which lists all of the listening ports and the executable involved:

netstat -b

answered Mar 25, 2016 at 21:23

Avalanchis's user avatar

AvalanchisAvalanchis

4,4713 gold badges37 silver badges47 bronze badges

If you have McAfee HIPS and if you see the following error in event viewer application log:

The Module DLL C:WindowsSystem32inetsrvHipIISEngineStub.dll failed to load.
The data is the error.

Then this workaround on McAfee.com resolved the issue in my case.

Quote from the page:

  1. Click Start, Run, type explorer and click OK.
  2. Navigate to: %windir%system32inetsrvconfig
  3. Open the file applicationHost.config as Administrator for editing in Notepad.
  4. Edit the <globalModules> section and remove the following line:

    <add name=»MfeEngine» image=»%windir%System32inetsrvHipIISEngineStub.dll» />

  5. Edit the <modules> section and remove the following line:

    <add name=»MfeEngine» />

  6. After you have finished editing the applicationHost.config file, save the file, then restart the IIS server using iisreset or by restarting the system.

Stacked's user avatar

Stacked

6,6246 gold badges55 silver badges73 bronze badges

answered Dec 28, 2014 at 15:01

Orhan Celik's user avatar

Orhan CelikOrhan Celik

1,49315 silver badges12 bronze badges

0

Actually, in my case https://localhost was working, but http://localhost gave a HTTP 503 Internal server error. Changing the Binding of Default Web Site in IIS to use the hostname localhost instead of a blank host name.

IIS Site bindings for HTTPtname for http binding

answered Aug 30, 2018 at 14:58

Tore Aurstad's user avatar

Tore AurstadTore Aurstad

2,94224 silver badges21 bronze badges

This could also happen if any recent installs or updates happened with .NET framework and/or ASP.NET. If you are unsure of what happened recently and if all your apps use ASP.NET version 4, you can try reset them by running the following commands in command prompt in administrator mode.

cd C:WindowsMicrosoft.NETFramework64v4.0.30319
aspnet_regiis -i

This makes sure to install or reinstall ASP.NET 4 and updates existing applications to use ASP.NET 4 version of the app pool. It updates both IIS Classic and Integrated mode handlers and script mappings in the IIS metabase. It also recreates ASP.NET v4.0 and ASP.NET v4.0 Classic app pools, and sets .NET framework 4 to DefaultAppPool and Classic .NET app pools.

answered Mar 31, 2016 at 15:59

Prabu Arumugam's user avatar

Prabu ArumugamPrabu Arumugam

1,9192 gold badges15 silver badges19 bronze badges

I changed the port from 80 to 8080, that’s why this error occur. I write localhost/ in search bar then this error occur. My problem is resolved by writing localhost:8080/ in the search then local host open.

answered Aug 1, 2019 at 5:22

ABDUL KHALIQ's user avatar

1

This happened to me on a server on our intranet. After browsing through blog posts and Windows logs, it turned out that a few days before Christmas 2015 (related to a Windows Update?) my web site application pool wanted to create a config file in folder c:inetpubtempappPools, but access to this folder was restricted. This caused the application pool to be disabled.

After adding Full control to Everyone on this temp folder, I restarted the Windows Process Activation Service and everything went online again.

If I’d been a little more elegant, it would probably had been enough to grant the AppPool user full control to the folder, but I never seem to remember how the app pool name and app pool user relates to eachother…

answered Jan 20, 2016 at 15:41

Daniel Persson's user avatar

Daniel PerssonDaniel Persson

2,1511 gold badge17 silver badges24 bronze badges

Same thing with IIS Express 10.0 after upgrading Windows 7 to Windows 10.
Solution: go to IIS and enable all disabled websites and reinstall ASP.NET Core.

answered Jul 22, 2016 at 11:14

1_bug's user avatar

1_bug1_bug

5,3374 gold badges49 silver badges57 bronze badges

Also check the address bar and make sure the page is in the right location.

This error can be returned instead of the 404 (Page not found). In my case, it was a bad link on the page that didn’t have a subfolder included.

answered Dec 3, 2015 at 21:15

Tony L.'s user avatar

Tony L.Tony L.

16.8k8 gold badges68 silver badges65 bronze badges

I was having this problem when cleaning up my IIS on dev machine, and I had somehow created a virtual folder for a subfolder of my actual development web that I couldn’t clear and was creating conflicts.

To clear it I had to use

C:WindowsSystem32inetsrvappcmd.exe list vdir

and then individually remove the problem virtual directories using

C:WindowsSystem32inetsrvappcmd.exe delete app /app.name:"Default Web Site"/{name of virtual directory}

answered Dec 2, 2019 at 10:23

Siemsen's user avatar

SiemsenSiemsen

1991 gold badge3 silver badges13 bronze badges

enter image description here

For me the solution is to change Enable 32-bit Applications to False


None of the answers worked for me. So I’d like to share what I found after hours of research..

Keep seeing this message from event logs: The Module DLL C:Windowssystem32RpcProxyRpcProxy.dll failed to load. The data is the error. Turns out that dll is 64bit and cannot be loaded into 32bit process.

answered Nov 10, 2020 at 15:44

Rohim Chou's user avatar

Rohim ChouRohim Chou

7679 silver badges16 bronze badges

You can also try the following.

Right-click on the site and ‘Basic Settings…’
Click on ‘Connect As…’
Click on Specific User and give the new credentials.

Now it should work.

answered Feb 19, 2021 at 9:57

Tushar Wason's user avatar

In my case, I had to change my userPass of network because company policies. So, you need to edit your AppPool:
click on Application Pools. Select your pool, ‘advanced Settings…’ go to ‘Process Model’ click on ‘Identity’ and Click on Specific User and give the new credentials.

Dharman's user avatar

Dharman

29.3k21 gold badges80 silver badges131 bronze badges

answered Apr 7, 2021 at 8:40

RogerEdward's user avatar

This might be because of number of connections to the database. I had such a situation and so, wrote a de-constructor and killed db open connection and it resolved.

answered Feb 27, 2014 at 12:34

user3225121's user avatar

1

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.

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

Обновлено 03.07.2020

HTTP Error 503

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами научились чинить две вещи в Windows 10, это пресловутый черный экран и ошибку запуска в приложениях из-за отсутствия библиотеки vcruntime140.dll. Двигаемся дальше и сегодня решим еще один интересный пазл с веб сервисом IIS и ошибкой «HTTP Error 503. The service is unavailable«. Думаю, что мои грабли будут вам весьма интересны.

Описание ошибки 503 на IIS

Не так давно я устанавливал отказоустойчивую службу Remote Desktop Services High Availability на базе Windows Server 2019. Сами роли установились корректно и без ошибок в мастере, я успешно создал коллекцию, опубликовал RemoteApp приложения и хотел их протестировать, но какого же было мое удивление, когда я в место привычной формы авторизации увидел ошибку:

Service Unavailable: HTTP Error 503. The service is unavailable.

Service Unavailable: HTTP Error 503. The service is unavailable

Причины ошибки HTTP Error 503. The service is unavailable

Сразу могу сказать, что данную проблему вы можете встретить в любом продукте компании Microsoft, где в качестве веб движка используется служба IIS (Internet Information Services). Из популярных:

  • RDS фермы
  • Share Point
  • Exchange
  • Просто сайты на IIS

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

Методы устранения ошибки 503 на IIS

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

  • Отсутствие прав у учетной записи, которая запускает пул приложений
  • Вы запускаете пул в режиме 32 бита
  • У вас просто не работает пул приложений
  • Проблема с NET.Framework
  • Проблема на уровне операционной системы из-за ошибок целостности

Переустановка системы

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

Не знаю, в чем было дело, то ли глюки при обновлении Windows Server 2019, то ли что-то со сборкой которая у меня была, не могу точно сказать. До переустановки у меня была версия Windows 1809 (Сборка ОС 17763.1282)

Определение версии на сервере с ошибкой Service Unavailable: HTTP Error 503. The service is unavailable

После переустановки я поставил версию от июня 2020. Когда я уже в ней запускал сайт RDweb на ферме RDS, то сервис ответил корректно и HTTP Error 503 я не увидел.

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

Проверка работы NET.Framework

По умолчанию в Windows Server 2019 при установке добавляется NET.Framework версии 4.7. Очень часто он может быть добавлен кривовато. В случае с Remote Desktop Services мне пришлось:

  • Удалить роль IIS и RDS
  • Удалить компонент NET.Framework
  • Скачать NET.Framework версии 4.7. Скачиваем потому, что после его удаления у вас не будет работать диспетчер серверов и установка из PowerShell.
  • Установить NET.Framework версии 4.7
  • Устанавливаете IIS
  • Устанавливаете RDS

В результате данного шаманства в сможете запустить RDweb на вашей RDS ферме минуя ошибку «Service Unavailable: HTTP Error 503. The service is unavailable».

Но перед всеми этими рокировками я вам советую, как и в случае с зависанием пула IIS обратиться к логам и попытаться там найти, что-то что даст нам направление для поиска информации. Напоминаю посмотреть логи Windows вы можете через оснастку «Просмотр событий» или веб-сервис Windows Admin Center. Советую смотреть четыре журнала. Первые два стандартные, это «Система» и «Приложения». Например вы можете увидеть вот такое событие с предупреждением:

Код ID 1309

Код ID 1309: Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 30.06.2020 18:34:41
Event time (UTC): 30.06.2020 15:34:41
Event ID: aa3cbb1255f3432d813e6c5cb75395ed
Event sequence: 14
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-2-132380048755425068
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:WindowsWebRDWebPages
Machine name: RDSH03

Process information:
Process ID: 3416
Process name: w3wp.exe
Account name: IIS APPPOOLRDWebAccess

Exception information:
Exception type: NullReferenceException
Exception message: Ссылка на объект не указывает на экземпляр объекта.
в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.<GetAppsAsync>d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.<ExecuteTasksAsync>d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.<ProcessRequestAsync>d__554.MoveNext()

Request information:
Request URL: https://rdsh03.root.pyatilistnik.org:443/RDWeb/Pages/ru-RU/Default.aspx
Request path: /RDWeb/Pages/ru-RU/Default.aspx
User host address: 192.168.31.100
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOLRDWebAccess

Thread information:
Thread ID: 7
Thread account name: IIS APPPOOLRDWebAccess
Is impersonating: False
Stack trace: в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.<GetAppsAsync>d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.<ExecuteTasksAsync>d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.<ProcessRequestAsync>d__554.MoveNext()
Custom event details:

Из которого понятно, что у меня не запущен пул. Откройте оснастку IIS и перейдите в раздел «Пулы приложений». Далее найдите нужный, в моем примере это RDWebAccess. Как видно у него статус «Остановлено», попробуйте его запустить.

Запуск пула в IIS при ошибке 503

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

  • Microsoft-Windows-IIS-Configuration/Administrative
  • Microsoft-Windows-IIS-Configuration/Operational

Журналы, где можно искать события по ошибке Service Unavailable: HTTP Error 503. The service is unavailable

Так же что-то полезное вы можете найти в текстовом файле располагающемся по пути:

C:WindowsSystem32LogFilesHTTPERR

Как видно из файла у меня был выключен пул «2020-07-01 08:34:12 ::1%0 62570 ::1%0 443 HTTP/2 GET /RDWeb 5 503 1 Disabled RDWebAccess». У вас может быть тут другая ошибка.

C:WindowsSystem32LogFilesHTTPERR

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

Get-ChildItem -Path ‘C:windowssystem32LogFilesHTTPERR’ -Include *.log -Recurse | Where-Object LastWriteTime -gt (Get-Date).AddDays(-7) | Select-String -SimpleMatch ‘ 503 ‘

Получение информации из HTTPERR’ по ошибке 503

Отключение 32 битного режима на пуле IIS

В журнале Microsoft-Windows-IIS-W3SVC-WP вы можете увидеть ошибку с кодом события: 2282, где:

Не удалось загрузить модуль DLL из-за ошибки в конфигурации. Текущая конфигурация поддерживает только загрузку образов для x86 архитектуру процессора. Поле данных содержит номер ошибки.

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

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

Отключение 32 битного режима у пула IIS

Еще раз проверьте что параметр Enable32bitAppOnWin64 (Разрешить 32-разрядные приложения) имеет значение «False».

Проверка пула IIS на параметр Enable32bitAppOnWin64

Подробнее об этом вот тут — https://support.microsoft.com/ru-ru/help/2619402/error-503-service-unavailable-when-you-browse-windows-sbs-websites

Проверка учетной записи от которой запускается пул

Я очень часто встречал безалаберных системных администраторов, которым было лень создавать отдельные учетные записи для каждой службы или сервиса с которой они работают. Они делали просто, запускали все из под себя с максимальными правами или для теста так делали и забывали, что так оставили. Потом с течением времени учетную запись могут отключить или сменить пароль, что сразу делает ваш пул неработоспособным, он просто не может запустить его. Исходя из этого проверьте данную ситуацию. В дополнительных параметрах найдите раздел «Удостоверение» и посмотрите от имени кого у вас запущен ваш пул, по умолчанию должна быть встроенная учетная запись «ApplicationPoolidentity».

Проверка учетной записи от которой запускается пул

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

Выбор учетной записи от имени которой запускается пул IIS

Отключение Load User Profile на пуле IIS

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

Службы и приложения, которые вызывают LoadUserProfile, должны проверить, есть ли у пользователя временный профиль. Если пользователь имеет перемещаемый профиль, указать путь к нему в качестве lpProfilePath члена PROFILEINFO.

Для IIS этот параметр указывает, должна ли служба загружать профиль пользователя для удостоверения пула приложений. Если значение этого параметра «True», то служба IIS загружает профиль пользователя для удостоверения пула приложений. Если необходимо поведение  IIS 6.0 без загрузки профиля пользователя для удостоверения пула приложений задайте значение «False«. Так, что если получаете «HTTP Error 503. The service is unavailable» и ничего не помогает, то пробуем его отключить.

Отключение Load User Profile на пуле IIS

Не создает временный файл конфигурации пула

Ошибку «Service Unavailable: HTTP Error 503. The service is unavailable» вы легко можете ловить из-за того, что ваш пул по какой-то причине не может создать временный файл конфигурации и об этом может свидетельствовать предупреждение в логах:

Службе активации процессов Windows не удалось создать файл конфигурации пула приложений для пула приложений < DefaultAppPool >. Тип ошибки: «5». Чтобы решить эту проблему, убедитесь, что файл applicationhost.config указан правильно, и повторите последние изменения конфигурации. Поле данных содержит номер ошибки.

Подробнее об этом на — https://support.microsoft.com/en-in/help/4050891/error-http-503-and-was-event-5189-from-web-applications-on-windows-10

Все происходит по причине того, что служба активации Windows (WAS) создает временный файл конфигурации для каждого пула приложений IIS в папке C:inetpubtempappPools во время обычной работы.

На начальном этапе обновления «Центр обновления Windows» сканирует существующие папки и файлы и записывает их пути для восстановления после обновления. Однако, поскольку файлы конфигурации являются временными, они удаляются при остановке WAS.

На следующем этапе Центра обновления Windows эти ранее отсканированные файлы и папки копируются во временную папку обновления. После обновления Windows «Центр обновления Windows» создает символическую ссылку на каждую папку, которая была скопирована во временное местоположение обновления, прежде чем он пытается восстановить эти файлы и папки в их исходное местоположение.

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

Когда WAS пытается запустить как рабочий процесс IIS, он не создает временную папку для записи конфигурации из-за символических ссылок. Поэтому Http.Sys возвращает ошибку HTTP 503.

Чтобы решить эту проблему, вручную удалите символические ссылки, созданные «Центром обновления Windows». Для этого выполните следующие действия:

  • Из командной строки от имени администратора

net stop WAS /y
rmdir /s /q C:inetpubtempappPools
net start W3SVC

  • Из оболочки PowerShell в режиме администратора

Stop-Service -Force WAS
Remove-Item -Recurse -Force C:inetpubtempappPools*
Start-Service W3SVC

Удаление временных файлов конфигурации пула в IIS

Два сайта на 443 порту

Был интересный случай в прошлом, мне нужно было перенести один сайт с IIS на другой сервер. После переноса вместо сайта я видел уже вам известную ошибку «Service Unavailable: HTTP Error 503. The service is unavailable». Самое интересное, что ошибка была только для HTTPS, в то время как HTTP работал нормально. Напоминаю, что по умолчанию https использует порт 443, зная это я решил посмотреть, что слушает порт, можно было конечно воспользоваться утилитами netstat или TCPView, но я пошел в тот момент через PowerShell. Введите команду, чтобы посмотреть, что порт слушается.

Get-NetTCPConnection -LocalPort 443 -State Listen

Как видно сервер слушается.

Проверка порта 443 на доступность через PowerShell

Если вы когда-нибудь столкнетесь с такой проблемой как 503 ответ, то попробуйте остановить службу веб-публикации

Stop-Service -Name w3svc -PassThru

И после этого опять запустить команду на прослушивание, если и в этом случае вы видите, что 443 порт ответил, то поздравляю у вас есть другой сервис мешающий IIS.

Остановка службы IIS

Если это сервер, который вы унаследовали, может быть нелегко определить, что прослушивает этот конкретный порт. Я установлю модуль PowerShell с именем Carbon (https://www.powershellgallery.com/packages/Carbon/) из галереи PowerShell, чтобы определить, что происходит.

Install-Module -Name Carbon -Force -AllowClobber

Когда веб-сервер не-IIS установлен в Windows, он устанавливает ACL для порта, который будет прослушивать. Вы можете увидеть ACL, который ссылается на порт 443.

То же самое через cmd — netsh http show urlacl

На самом деле, есть две записи для порта 443. Тот, у кого GUID все в порядке, так как он предназначен только для конкретного приложения через заголовок узла, а не по всему пространству имен.

Get-HttpUrlAcl

Второе я вычислил через TCPView, это было приложение Dell EqualLogic SAN Headquarters, установленное на этом конкретном сервере, оно вызывало проблему, поэтому я решил удалить его, так как оно больше не нужно.

Dell EqualLogic SAN Headquarters

Хоть я и удалил Dell EqualLogic SAN Headquarters с сервера, это не удалило ACL, назначенный порту 443.

Удаление ACL веб-сервера

Поскольку деинсталляция приложения не решила проблему, я решил принудительно удалить ACL

Revoke-HttpUrlPermission -Url https://+443/ -Principal ‘NT AUTHORITYSYSTEM’

То же самое через cmd — netsh http delete urlacl url = [вставить URL]

После удаления этой записи и перезапуска веб-службы проблемы с прослушиванием IIS через порт 443 были решены.

Кстати можно в логах посмотреть кто установил ACL, но там не всегда все подробно. Выполните:

Get-WinEvent -FilterHashtable @{LogName=’System’;ProviderName=’Microsoft-Windows-HttpEvent’;Level=4} -MaxEvents 1 | Select-Object -Property Message

Запись в просмотре событий кто добавил ACL веб-сервера

Дополнительные методы

  1. Перезагрузить сайт, через клавиши CTRL+F5
  2. Перезагрузите модем или компьютер
  3. Очистить кеш браузера
  4. Проверьте настройки прокси
  5. Если ошибку получаете в каком-то сервисе на телефоне, то попробуйте обновить приложение
  6. Проверка диска C: на ошибки

Ошибки 5XX означают, что есть проблемы со стороны сервера. Например, 500 ошибка значит, что сервер столкнулся с внутренней ошибкой, из-за которой не смог обработать запрос. К ней могут привести неверные директивы в .htaccess или ошибки в скриптах сайта. А ошибка 503 означает, что сервер не может обработать ваш запрос в данный момент. После номера ошибки часто идёт краткое описание. 503 ошибка сервера часто сопровождается фразой «Service Temporarily Unavailable» (сервис временно недоступен). Если на вашем сайте часто встречается 503 ошибка, значит самое время выяснить её причину.

В этой статье мы рассмотрим возможные причины возникновения 503 ошибки на сайте и способы её устранения.


Ошибка 503 Service Unavailable

Что такое ошибка 503 (Service Temporarily Unavailable)

Эта ошибка означает, что сервер не готов обработать запрос в данный момент. Подразумевается, что это временно и нужно повторить попытку позже. Но это не всегда так. HTTP 503 Service Unavailable — это код состояния, который содержится в ответе веб-сервера и показывает, успешно ли выполнен запрос. Коды 5XX принадлежат классу серверных ошибок. В спецификации RFC 7231 указано, что код 503 сообщает о том, что сервер в настоящее время не может обработать запрос из-за временной перегрузки или планового технического обслуживания


Спецификация RFC 7231

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

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

  1. 1.

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

  2. 2.

    Если после нескольких перезагрузок страницы ошибка всё равно возникает, попробуйте открыть сайт через другой браузер. Если в другом браузере ошибка не воспроизводится, очистите кэш на своем браузере. Например, в Google Chrome нажмите комбинацию клавиш Ctrl+Shift+Delete:


    Очистить историю в Google Chrome

  3. 3.

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

  4. 4.

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

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

Ошибка недоступности, если вы владелец сайта

Частые ошибки 503 на вашем сайте могут негативно сказаться на позициях в поисковых системах и привести к снижению трафика. Посетители могут просто не вернуться на ваш сайт. Не игнорируйте проблему и сразу приступайте к её решению. Вот несколько вариантов решения:

  • На любом хостинге есть ограничения и лимиты, которые не стоит превышать. Их устанавливает хостинг-провайдер. Превышение лимитов может привести к возникновению проблем на сайте, в том числе и к ошибке 503. Изучить характеристики вашего тарифного плана вы можете на сайте хостинг-провайдера. Для хостинга REG.RU действуют следующие технические ограничения.
  • Хостинг может не справляться с большим количеством посетителей на сайте. В этом случае может помочь смена тарифного плана или переезд к новому хостинг-провайдеру.
  • Бывает, что неактуальные версии плагинов и других компонентов движка нарушают работу сайта. Попробуйте по очереди отключать установленные плагины вашей CMS и проверять работоспособность сайта после каждого. Если ошибка не возникает после отключения очередного плагина, обновите этот плагин до последней версии. Возможно, что в новой версии разработчик уже внёс исправления. Если обновление не помогло, плагину нужно искать альтернативу.
  • Регулярно обновляйте CMS и её компоненты. Зачастую обновления направлены на оптимизацию работы движка, устранение уязвимостей, борьбу с багами, повышение безопасности и быстродействия. Удалите все ненужные компоненты, которыми не пользуетесь. Оставьте только самые необходимые, чтобы уменьшить нагрузку на сервер.
  • Проанализируйте скрипты сайта. К HTTP Error 503 может привести неправильная работа скриптов на сайте. Выполните их диагностику и убедитесь, что на сайте не включен режим технических работ.
  • Не загружайте крупные файлы при помощи PHP. Очень часто хостинг-провайдер ограничивает время выполнения скрипта, и вы можете не уложиться в этот лимит. Ещё одним минусом передачи файлов через PHP является создание отдельного PHP-процесса, который будет занят загрузкой файла, а не обработкой запросов посетителей. Загружайте файлы по FTP, чтобы уменьшить нагрузку на хостинг.
  • Запускайте массовые почтовые рассылки в периоды минимальной активности на вашем сайте. Точно так же стоит поступить и с техническими работами на сайте и сервере.
  • Поисковые роботы могут генерировать большое количество обращений к сайту. Проанализируйте статистику по User-Agent и выясните, какие роботы создают нагрузку. При помощи файла robots.txt задайте временной интервал обращений.
  • Настройте кэширование средствами CMS или хостинга. В WordPress вы можете настроить кэширование с помощью нашей инструкции: Что такое кэширование и как управлять им в WordPress. В панели управления хостингом тоже часто имеются встроенные инструменты по настройке кэширования.
  • Запросы к сторонним ресурсам могут замедлять генерацию и отдачу контента, что в итоге может привести к 503 ошибке. Если удалённый сервер недоступен, ваш сайт потратит больше времени на ожидание ответа. Уменьшите тайм-аут ожидания ответа от стороннего ресурса или вовсе откажитесь от таких запросов. Работоспособность сторонних сервисов невозможно контролировать.

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

Ошибка 503 на хостинге REG.RU

  1. 1.

    Ошибка может возникнуть из-за превышения лимита на количество PHP-процессов. Согласно техническим ограничениям, на тарифных планах Host максимальное количество процессов PHP составляет 4, на тарифных планах VIP — 32.

    Чтобы посмотреть запущенные PHP-процессы, подключитесь по SSH и выполните следующую команду:

    ps aux | grep php | grep u1234567

    Где u1234567 — ваш логин хостинга (Как узнать логин хостинга).

    Чтобы завершить текущие php-процессы, измените версию PHP на отличную от текущей. Затем включите версию PHP, которая была установлена ранее.

  2. 2.

    Максимальное количество процессов на тарифных планах Host составляет 18, а на VIP — 48. Если общее количество процессов (PHP, IMAP, Cron и др.) будет превышено, то может возникнуть ошибка «503 временно недоступен».


    Технические ограничения хостинга REG.RU

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

  3. 3.

    Максимальное количество HTTP-запросов в секунду на один домен: 75 на тарифах Host и 300 на VIP. При превышении этого лимита 503 ошибку может возвращать весь сайт или часть контента на нём. Причиной может быть большое количество запросов в секунду или контента на сайте (картинки, баннеры).

  4. 4.

    На VPS ошибка может возникнуть из-за DDoS-атаки, из-за которой увеличивается нагрузка на сервер.

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

Понравилась статья? Поделить с друзьями:
  • Http error 503 the service is unavailable asp
  • Http error 503 service unavailable python
  • Http error 503 service unavailable jetty
  • Http error 503 problem accessing reason service unavailable
  • Http error 503 iis ошибка