Error 502 wiki

Page semi-protected

From Wikipedia, the free encyclopedia

This is a list of Hypertext Transfer Protocol (HTTP) response status codes. Status codes are issued by a server in response to a client’s request made to the server. It includes codes from IETF Request for Comments (RFCs), other specifications, and some additional codes used in some common applications of the HTTP. The first digit of the status code specifies one of five standard classes of responses. The optional message phrases shown are typical, but any human-readable alternative may be provided, or none at all.

Unless otherwise stated, the status code is part of the HTTP standard (RFC 9110).

The Internet Assigned Numbers Authority (IANA) maintains the official registry of HTTP status codes.[1]

All HTTP response status codes are separated into five classes or categories. The first digit of the status code defines the class of response, while the last two digits do not have any classifying or categorization role. There are five classes defined by the standard:

  • 1xx informational response – the request was received, continuing process
  • 2xx successful – the request was successfully received, understood, and accepted
  • 3xx redirection – further action needs to be taken in order to complete the request
  • 4xx client error – the request contains bad syntax or cannot be fulfilled
  • 5xx server error – the server failed to fulfil an apparently valid request

1xx informational response

An informational response indicates that the request was received and understood. It is issued on a provisional basis while request processing continues. It alerts the client to wait for a final response. The message consists only of the status line and optional header fields, and is terminated by an empty line. As the HTTP/1.0 standard did not define any 1xx status codes, servers must not[note 1] send a 1xx response to an HTTP/1.0 compliant client except under experimental conditions.

100 Continue
The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient. To have a server check the request’s headers, a client must send Expect: 100-continue as a header in its initial request and receive a 100 Continue status code in response before sending the body. If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it should not send the request’s body. The response 417 Expectation Failed indicates that the request should be repeated without the Expect header as it indicates that the server does not support expectations (this is the case, for example, of HTTP/1.0 servers).[2]
101 Switching Protocols
The requester has asked the server to switch protocols and the server has agreed to do so.
102 Processing (WebDAV; RFC 2518)
A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[3] This prevents the client from timing out and assuming the request was lost.
103 Early Hints (RFC 8297)
Used to return some response headers before final HTTP message.[4]

2xx success

This class of status codes indicates the action requested by the client was received, understood, and accepted.[1]

200 OK
Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.
201 Created
The request has been fulfilled, resulting in the creation of a new resource.[5]
202 Accepted
The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
203 Non-Authoritative Information (since HTTP/1.1)
The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin’s response.[6][7]
204 No Content
The server successfully processed the request, and is not returning any content.
205 Reset Content
The server successfully processed the request, asks that the requester reset its document view, and is not returning any content.
206 Partial Content
The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
207 Multi-Status (WebDAV; RFC 4918)
The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.[8]
208 Already Reported (WebDAV; RFC 5842)
The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.
226 IM Used (RFC 3229)
The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.[9]

3xx redirection

This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.[1]

A user agent may carry out the additional action with no user interaction only if the method used in the second request is GET or HEAD. A user agent may automatically redirect a request. A user agent should detect and intervene to prevent cyclical redirects.[10]

300 Multiple Choices
Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation). For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
301 Moved Permanently
This and all future requests should be directed to the given URI.
302 Found (Previously «Moved temporarily»)
Tells the client to look at (browse to) another URL. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect with the same method (the original describing phrase was «Moved Temporarily»),[11] but popular browsers implemented 302 redirects by changing the method to GET. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.[10]
303 See Other (since HTTP/1.1)
The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.
304 Not Modified
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
305 Use Proxy (since HTTP/1.1)
The requested resource is available only through a proxy, the address for which is provided in the response. For security reasons, many HTTP clients (such as Mozilla Firefox and Internet Explorer) do not obey this status code.
306 Switch Proxy
No longer used. Originally meant «Subsequent requests should use the specified proxy.»
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For example, a POST request should be repeated using another POST request.
308 Permanent Redirect
This and all future requests should be directed to the given URI. 308 parallel the behaviour of 301, but does not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.

4xx client errors

A The Wikimedia 404 message

This class of status code is intended for situations in which the error seems to have been caused by the client. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents should display any included entity to the user.

400 Bad Request
The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).
401 Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication. 401 semantically means «unauthorised», the user does not have valid authentication credentials for the target resource.
Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.[citation needed]
402 Payment Required
Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed, for example, by GNU Taler,[13] but that has not yet happened, and this code is not widely used. Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.[14] Sipgate uses this code if an account does not have sufficient funds to start a call.[15] Shopify uses this code when the store has not paid their fees and is temporarily disabled.[16] Stripe uses this code for failed payments where parameters were correct, for example blocked fraudulent payments.[17]
403 Forbidden
The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action (e.g. creating a duplicate record where only one is allowed). This code is also typically used if the request provided authentication by answering the WWW-Authenticate header field challenge, but the server did not accept that authentication. The request should not be repeated.
404 Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
405 Method Not Allowed
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
406 Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. See Content negotiation.
407 Proxy Authentication Required
The client must first authenticate itself with the proxy.
408 Request Timeout
The server timed out waiting for the request. According to HTTP specifications: «The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.»
409 Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
410 Gone
Indicates that the resource requested was previously in use but is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a «404 Not Found» may be used instead.
411 Length Required
The request did not specify the length of its content, which is required by the requested resource.
412 Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields.
413 Payload Too Large
The request is larger than the server is willing or able to process. Previously called «Request Entity Too Large» in RFC 2616.[18]
414 URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called «Request-URI Too Long» previously in RFC 2616.[19]
415 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
416 Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called «Requested Range Not Satisfiable» previously RFC 2616.[20]
417 Expectation Failed
The server cannot meet the requirements of the Expect request-header field.[21]
418 I’m a teapot (RFC 2324, RFC 7168)
This code was defined in 1998 as one of the traditional IETF April Fools’ jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee.[22] This HTTP status is used as an Easter egg in some websites, such as Google.com’s «I’m a teapot» easter egg.[23][24][25] Sometimes, this status code is also used as a response to a blocked request, instead of the more appropriate 403 Forbidden.[26][27]
421 Misdirected Request
The request was directed at a server that is not able to produce a response (for example because of connection reuse).
422 Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.[8]
423 Locked (WebDAV; RFC 4918)
The resource that is being accessed is locked.[8]
424 Failed Dependency (WebDAV; RFC 4918)
The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).[8]
425 Too Early (RFC 8470)
Indicates that the server is unwilling to risk processing a request that might be replayed.
426 Upgrade Required
The client should switch to a different protocol such as TLS/1.3, given in the Upgrade header field.
428 Precondition Required (RFC 6585)
The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.[28]
429 Too Many Requests (RFC 6585)
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.[28]
431 Request Header Fields Too Large (RFC 6585)
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.[28]
451 Unavailable For Legal Reasons (RFC 7725)
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.[29] The code 451 was chosen as a reference to the novel Fahrenheit 451 (see the Acknowledgements in the RFC).

5xx server errors

The server failed to fulfil a request.

Response status codes beginning with the digit «5» indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and indicate whether it is a temporary or permanent condition. Likewise, user agents should display any included entity to the user. These response codes are applicable to any request method.

500 Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
501 Not Implemented
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
502 Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
503 Service Unavailable
The server cannot handle the request (because it is overloaded or down for maintenance). Generally, this is a temporary state.[30]
504 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
505 HTTP Version Not Supported
The server does not support the HTTP version used in the request.
506 Variant Also Negotiates (RFC 2295)
Transparent content negotiation for the request results in a circular reference.[31]
507 Insufficient Storage (WebDAV; RFC 4918)
The server is unable to store the representation needed to complete the request.[8]
508 Loop Detected (WebDAV; RFC 5842)
The server detected an infinite loop while processing the request (sent instead of 208 Already Reported).
510 Not Extended (RFC 2774)
Further extensions to the request are required for the server to fulfill it.[32]
511 Network Authentication Required (RFC 6585)
The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., «captive portals» used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).[28]

Unofficial codes

The following codes are not specified by any standard.

419 Page Expired (Laravel Framework)
Used by the Laravel Framework when a CSRF Token is missing or expired.
420 Method Failure (Spring Framework)
A deprecated response used by the Spring Framework when a method has failed.[33]
420 Enhance Your Calm (Twitter)
Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.[34] The phrase «Enhance your calm» comes from the 1993 movie Demolition Man, and its association with this number is likely a reference to cannabis.[citation needed]
430 Request Header Fields Too Large (Shopify)
Used by Shopify, instead of the 429 Too Many Requests response code, when too many URLs are requested within a certain time frame.[35]
450 Blocked by Windows Parental Controls (Microsoft)
The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.[36]
498 Invalid Token (Esri)
Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.[37]
499 Token Required (Esri)
Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.[37]
509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
The server has exceeded the bandwidth specified by the server administrator; this is often used by shared hosting providers to limit the bandwidth of customers.[38]
529 Site is overloaded
Used by Qualys in the SSLLabs server testing API to signal that the site can’t process the request.[39]
530 Site is frozen
Used by the Pantheon Systems web platform to indicate a site that has been frozen due to inactivity.[40]
598 (Informal convention) Network read timeout error
Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.[41]
599 Network Connect Timeout Error
An error used by some HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.

Internet Information Services

Microsoft’s Internet Information Services (IIS) web server expands the 4xx error space to signal errors with the client’s request.

440 Login Time-out
The client’s session has expired and must log in again.[42]
449 Retry With
The server cannot honour the request because the user has not provided the required information.[43]
451 Redirect
Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users’ mailbox.[44] The client is expected to re-run the HTTP AutoDiscover operation to find a more appropriate server.[45]

IIS sometimes uses additional decimal sub-codes for more specific information,[46] however these sub-codes only appear in the response payload and in documentation, not in the place of an actual HTTP status code.

nginx

The nginx web server software expands the 4xx error space to signal issues with the client’s request.[47][48]

444 No Response
Used internally[49] to instruct the server to return no information to the client and close the connection immediately.
494 Request header too large
Client sent too large request or too long header line.
495 SSL Certificate Error
An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.
496 SSL Certificate Required
An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.
497 HTTP Request Sent to HTTPS Port
An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.
499 Client Closed Request
Used when the client has closed the request before the server could send a response.

Cloudflare

Cloudflare’s reverse proxy service expands the 5xx series of errors space to signal issues with the origin server.[50]

520 Web Server Returned an Unknown Error
The origin server returned an empty, unknown, or unexpected response to Cloudflare.[51]
521 Web Server Is Down
The origin server refused connections from Cloudflare. Security solutions at the origin may be blocking legitimate connections from certain Cloudflare IP addresses.
522 Connection Timed Out
Cloudflare timed out contacting the origin server.
523 Origin Is Unreachable
Cloudflare could not reach the origin server; for example, if the DNS records for the origin server are incorrect or missing.
524 A Timeout Occurred
Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.
525 SSL Handshake Failed
Cloudflare could not negotiate a SSL/TLS handshake with the origin server.
526 Invalid SSL Certificate
Cloudflare could not validate the SSL certificate on the origin web server. Also used by Cloud Foundry’s gorouter.
527 Railgun Error
Error 527 indicates an interrupted connection between Cloudflare and the origin server’s Railgun server.[52]
530
Error 530 is returned along with a 1xxx error.[53]

AWS Elastic Load Balancer

Amazon’s Elastic Load Balancing adds a few custom return codes

460
Client closed the connection with the load balancer before the idle timeout period elapsed. Typically when client timeout is sooner than the Elastic Load Balancer’s timeout.[54]
463
The load balancer received an X-Forwarded-For request header with more than 30 IP addresses.[54]
561 Unauthorized
An error around authentication returned by a server registered with a load balancer. You configured a listener rule to authenticate users, but the identity provider (IdP) returned an error code when authenticating the user.[55]

Caching warning codes (obsoleted)

The following caching related warning codes were specified under RFC 7234. Unlike the other status codes above, these were not sent as the response status in the HTTP protocol, but as part of the «Warning» HTTP header.[56][57]

Since this «Warning» header is often neither sent by servers nor acknowledged by clients, this header and its codes were obsoleted by the HTTP Working Group in 2022 with RFC 9111.[58]

110 Response is Stale
The response provided by a cache is stale (the content’s age exceeds a maximum age set by a Cache-Control header or heuristically chosen lifetime).
111 Revalidation Failed
The cache was unable to validate the response, due to an inability to reach the origin server.
112 Disconnected Operation
The cache is intentionally disconnected from the rest of the network.
113 Heuristic Expiration
The cache heuristically chose a freshness lifetime greater than 24 hours and the response’s age is greater than 24 hours.
199 Miscellaneous Warning
Arbitrary, non-specific warning. The warning text may be logged or presented to the user.
214 Transformation Applied
Added by a proxy if it applies any transformation to the representation, such as changing the content encoding, media type or the like.
299 Miscellaneous Persistent Warning
Same as 199, but indicating a persistent warning.

See also

  • Custom error pages
  • List of FTP server return codes
  • List of HTTP header fields
  • List of SMTP server return codes
  • Common Log Format

Explanatory notes

  1. ^ Emphasised words and phrases such as must and should represent interpretation guidelines as given by RFC 2119

References

  1. ^ a b c «Hypertext Transfer Protocol (HTTP) Status Code Registry». Iana.org. Archived from the original on December 11, 2011. Retrieved January 8, 2015.
  2. ^ «RFC 9110: HTTP Semantics and Content, Section 10.1.1 «Expect»«.
  3. ^ Goland, Yaronn; Whitehead, Jim; Faizi, Asad; Carter, Steve R.; Jensen, Del (February 1999). HTTP Extensions for Distributed Authoring – WEBDAV. IETF. doi:10.17487/RFC2518. RFC 2518. Retrieved October 24, 2009.
  4. ^ Oku, Kazuho (December 2017). An HTTP Status Code for Indicating Hints. IETF. doi:10.17487/RFC8297. RFC 8297. Retrieved December 20, 2017.
  5. ^ Stewart, Mark; djna. «Create request with POST, which response codes 200 or 201 and content». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  6. ^ «RFC 9110: HTTP Semantics and Content, Section 15.3.4».
  7. ^ «RFC 9110: HTTP Semantics and Content, Section 7.7».
  8. ^ a b c d e Dusseault, Lisa, ed. (June 2007). HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF. doi:10.17487/RFC4918. RFC 4918. Retrieved October 24, 2009.
  9. ^ Delta encoding in HTTP. IETF. January 2002. doi:10.17487/RFC3229. RFC 3229. Retrieved February 25, 2011.
  10. ^ a b «RFC 9110: HTTP Semantics and Content, Section 15.4 «Redirection 3xx»«.
  11. ^ Berners-Lee, Tim; Fielding, Roy T.; Nielsen, Henrik Frystyk (May 1996). Hypertext Transfer Protocol – HTTP/1.0. IETF. doi:10.17487/RFC1945. RFC 1945. Retrieved October 24, 2009.
  12. ^ «The GNU Taler tutorial for PHP Web shop developers 0.4.0». docs.taler.net. Archived from the original on November 8, 2017. Retrieved October 29, 2017.
  13. ^ «Google API Standard Error Responses». 2016. Archived from the original on May 25, 2017. Retrieved June 21, 2017.
  14. ^ «Sipgate API Documentation». Archived from the original on July 10, 2018. Retrieved July 10, 2018.
  15. ^ «Shopify Documentation». Archived from the original on July 25, 2018. Retrieved July 25, 2018.
  16. ^ «Stripe API Reference – Errors». stripe.com. Retrieved October 28, 2019.
  17. ^ «RFC2616 on status 413». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  18. ^ «RFC2616 on status 414». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  19. ^ «RFC2616 on status 416». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  20. ^ TheDeadLike. «HTTP/1.1 Status Codes 400 and 417, cannot choose which». serverFault. Archived from the original on October 10, 2015. Retrieved October 16, 2015.
  21. ^ Larry Masinter (April 1, 1998). Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0). doi:10.17487/RFC2324. RFC 2324. Any attempt to brew coffee with a teapot should result in the error code «418 I’m a teapot». The resulting entity body MAY be short and stout.
  22. ^ I’m a teapot
  23. ^ Barry Schwartz (August 26, 2014). «New Google Easter Egg For SEO Geeks: Server Status 418, I’m A Teapot». Search Engine Land. Archived from the original on November 15, 2015. Retrieved November 4, 2015.
  24. ^ «Google’s Teapot». Retrieved October 23, 2017.[dead link]
  25. ^ «Enable extra web security on a website». DreamHost. Retrieved December 18, 2022.
  26. ^ «I Went to a Russian Website and All I Got Was This Lousy Teapot». PCMag. Retrieved December 18, 2022.
  27. ^ a b c d Nottingham, M.; Fielding, R. (April 2012). «RFC 6585 – Additional HTTP Status Codes». Request for Comments. Internet Engineering Task Force. Archived from the original on May 4, 2012. Retrieved May 1, 2012.
  28. ^ Bray, T. (February 2016). «An HTTP Status Code to Report Legal Obstacles». ietf.org. Archived from the original on March 4, 2016. Retrieved March 7, 2015.
  29. ^ alex. «What is the correct HTTP status code to send when a site is down for maintenance?». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  30. ^ Holtman, Koen; Mutz, Andrew H. (March 1998). Transparent Content Negotiation in HTTP. IETF. doi:10.17487/RFC2295. RFC 2295. Retrieved October 24, 2009.
  31. ^ Nielsen, Henrik Frystyk; Leach, Paul; Lawrence, Scott (February 2000). An HTTP Extension Framework. IETF. doi:10.17487/RFC2774. RFC 2774. Retrieved October 24, 2009.
  32. ^ «Enum HttpStatus». Spring Framework. org.springframework.http. Archived from the original on October 25, 2015. Retrieved October 16, 2015.
  33. ^ «Twitter Error Codes & Responses». Twitter. 2014. Archived from the original on September 27, 2017. Retrieved January 20, 2014.
  34. ^ «HTTP Status Codes and SEO: what you need to know». ContentKing. Retrieved August 9, 2019.
  35. ^ «Screenshot of error page». Archived from the original (bmp) on May 11, 2013. Retrieved October 11, 2009.
  36. ^ a b «Using token-based authentication». ArcGIS Server SOAP SDK. Archived from the original on September 26, 2014. Retrieved September 8, 2014.
  37. ^ «HTTP Error Codes and Quick Fixes». Docs.cpanel.net. Archived from the original on November 23, 2015. Retrieved October 15, 2015.
  38. ^ «SSL Labs API v3 Documentation». github.com.
  39. ^ «Platform Considerations | Pantheon Docs». pantheon.io. Archived from the original on January 6, 2017. Retrieved January 5, 2017.
  40. ^ «HTTP status codes — ascii-code.com». www.ascii-code.com. Archived from the original on January 7, 2017. Retrieved December 23, 2016.
  41. ^
    «Error message when you try to log on to Exchange 2007 by using Outlook Web Access: «440 Login Time-out»«. Microsoft. 2010. Retrieved November 13, 2013.
  42. ^ «2.2.6 449 Retry With Status Code». Microsoft. 2009. Archived from the original on October 5, 2009. Retrieved October 26, 2009.
  43. ^ «MS-ASCMD, Section 3.1.5.2.2». Msdn.microsoft.com. Archived from the original on March 26, 2015. Retrieved January 8, 2015.
  44. ^ «Ms-oxdisco». Msdn.microsoft.com. Archived from the original on July 31, 2014. Retrieved January 8, 2015.
  45. ^ «The HTTP status codes in IIS 7.0». Microsoft. July 14, 2009. Archived from the original on April 9, 2009. Retrieved April 1, 2009.
  46. ^ «ngx_http_request.h». nginx 1.9.5 source code. nginx inc. Archived from the original on September 19, 2017. Retrieved January 9, 2016.
  47. ^ «ngx_http_special_response.c». nginx 1.9.5 source code. nginx inc. Archived from the original on May 8, 2018. Retrieved January 9, 2016.
  48. ^ «return» directive Archived March 1, 2018, at the Wayback Machine (http_rewrite module) documentation.
  49. ^ «Troubleshooting: Error Pages». Cloudflare. Archived from the original on March 4, 2016. Retrieved January 9, 2016.
  50. ^ «Error 520: web server returns an unknown error». Cloudflare. Retrieved November 1, 2019.
  51. ^ «527 Error: Railgun Listener to origin error». Cloudflare. Archived from the original on October 13, 2016. Retrieved October 12, 2016.
  52. ^ «Error 530». Cloudflare. Retrieved November 1, 2019.
  53. ^ a b «Troubleshoot Your Application Load Balancers – Elastic Load Balancing». docs.aws.amazon.com. Retrieved August 27, 2019.
  54. ^ «Troubleshoot your Application Load Balancers — Elastic Load Balancing». docs.aws.amazon.com. Retrieved January 24, 2021.
  55. ^ «Hypertext Transfer Protocol (HTTP/1.1): Caching». datatracker.ietf.org. Retrieved September 25, 2021.
  56. ^ «Warning — HTTP | MDN». developer.mozilla.org. Retrieved August 15, 2021. CC BY-SA icon.svg Some text was copied from this source, which is available under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.
  57. ^ «RFC 9111: HTTP Caching, Section 5.5 «Warning»«. June 2022.

External links

  • «RFC 9110: HTTP Semantics and Content, Section 15 «Status Codes»«.
  • Hypertext Transfer Protocol (HTTP) Status Code Registry

Материал из DiPHOST.Ru wiki system

Перейти к: навигация, поиск

На нашем хостинге HTTP-запросы к сайтам идут через nginx, который пропускает их через себя к пользовательским веб-серверам apache (подробнее можно узнать в нашей статье Веб-система).

502-ая ошибка означает, что запрос к сайту прошел nginx, он попытался передать его дальше и не смог передать или получить ответ. В результате nginx отдает в ответ на запрос ошибку.

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

Нехватка ресурсов

Самая популярная ситуация на виртуальном хостинге.

У веб-сервера apache количество одновременных обработчиков фиксировано конфигурацией сервера. Если все обработчики заняты, то новые запросы не принимаются и становятся в очередь до истечения предела времени ожидания. Если предел времени ожидания истёк (обычно это одна — полторы минуты), то nginx выдаёт ошибку 502. Очередь запросов тоже имеет предел, который составляет 128 запросов на каждый веб-сервер apache. Если очередь заполнена, то новый запрос не принимается, nginx выдаёт ошибку 502 и закрывает соединение (более подробно описано в статье Веб-система).

Этот вид ошибки прекрасно диагностируется попыткой обратиться к статическому содержимому сайта — картинке или файлу robots.txt, например. Также, косвенным подтверждением может быть то, что неработоспособными становятся все сайты аккаунта выбранного типа (поскольку они обслуживаются одним веб-сервером).

Возможные причины нехватки ресурсов:

  • если программное обеспечение сайта обращается к внешним ресурсам (например, скрипт сайта хочет получить значение некоего счётчика на другом сайте) без установки предела времени ожидания, то неполадки в сети или на внешнем ресурсе почти мгновенно приводят к ошибке 502;
  • на тарифе TINCO и ознакомительных WSGI-сайтах тарифа PARMA, где предусмотрен всего один обработчик, обращение из программного обеспечения сайта самого к себе (например, скрипт главной страницы хочет получить информацию из форума этого же сайта, обращаясь к нему) приводит к ошибке 502;
  • в случае загрузки файлов большого объёма этим занимается обработчик долгое время, это может привести к к эффекту торможения, а зачастую и ошибке 502;
  • возможны проблемы на сервере, в зоне ответственности хостера (нас, т.е.), приводящие к очень медленной работе веб-серверов apache, которые в итоге не успевают обработать поток запросов.

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

  • выделить предполагаемые нагруженные php-сайты на отдельные тарифы PARMA;
  • выделить предполагаемые нагруженные WSGI-сайты на отдельные тарифы CALMA;
  • сократить вплоть до полного отказа интерактивные соединения с внешними ресурсами;
  • выставить пределы времени соединений с внешними ресурсами.

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

Несоблюдение стандартов

Некоторые популярные программы написаны без соблюдения стандартов. При этом nginx служит неким фильтром «битых» запросов, чтобы избавить от обработки их внутренний уровень веб-системы. При невозможности передать запрос к apache, nginx выдаёт ошибку 502. Например, магазин PrestaShop хранит много информации в так называемых cookie, которые передаются в заголовках HTTP-запросов. По стандарту, они не могут превышать 4Kb. Однако PrestaShop игнорирует это ограничение. При попытке передать запрос с размером заголовков более 4Kb к apache, nginx выдаёт ошибку 502. Ошибка обнаруживается только просмотром специальных журналов, поскольку запрос не дошёл до apache, и устраняется установкой на страх и риск клиента конфигурации для сайта с «поправкой» на предел размера заголовков.

Ошибки PHP

Возможны ошибки различных расширений PHP, не связанные с синтаксисом языка или логикой работы расширений, когда обработчик просто «ломается» и ничего не отдаёт наружу. Для nginx это выглядит как внезапное закрытие соединения с apache и он считает это ошибкой. Выявить именно этот тип ошибки можно методом исключения — если статическое содержимое (картинки, файл robots.txt) нормально открывается, а обращение к скрипту выдаёт 502-ую ошибку — это скорее всего описанный случай.

Категория:

  • FAQ. У меня не работает…
  • Часто возникающие проблемы

Ошибка 502 Bad Gateway: что значит

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

Ошибка 502 Bad Gateway возникает при неправильной работе прокси-сервера, DNS-сервера и чаще всего сервера, на котором размещён сайт. Проблема может распространяться как на весь ресурс, так и на отдельные страницы. Это зависит от характера проблемы. Существуют разновидности 502 ошибки: Bad Gateway Nginx, Bad Gateway Apache. Об их отличиях мы расскажем ниже. Также эта ошибка может иметь формулировки:

  • Bad Gateway: Registered endpoint failed to handle the request, Temporary Error (502),
  • Error 502,
  • Bad 502 Gateway,
  • 502 Error,
  • 502. That’s an error,
  • 502 Service Temporarily Overloaded,
  • 502 Server Error: The server encountered a temporary error and could not complete your request,
  • 502 – Web server received an invalid response while acting as a gateway or proxy server,
  • 502 Bad Gateway Nginx,
  • 502 Proxy Error,
  • HTTP 502,
  • HTTP Error 502 Bad Gateway.

Причины возникновения ошибки 502 Bad Gateway

  1. Первая и основная причина ― перегрузка сервера. Перегрузка может быть вызвана несколькими проблемами:
    • Большое количество посетителей одновременно. Веб-ресурс может посещать ограниченное количество посетителей. Сколько человек может посетить сайт зависит от возможностей сервера (размера оперативной памяти) и настроек, которые сделал создатель ресурса. Если по какой-либо причине на сайт зайдёт больше пользователей, чем запланировано, сервис может не справиться и страница выдаст код 502. Такое случается при рекламных акциях и распродажах в интернет-магазинах.
    • Атака хакеров или DDoS-атака. Эта проблема связана с предыдущей причиной перегрузки. Хакер имитирует большой наплыв пользователей, из-за чего сервер выходит из строя. Такие атаки могут быть использованы для снижения продаж.
    • Оверселлинг. Повторная перепродажа уже проданных вычислительных ресурсов сервера (CPU, RAM, HDD). Как это работает? При покупке услуги хостинга у клиента есть ограниченное количество ресурсов. При создании сайта создатели часто берут хостинг с запасом ресурсов на случай, если в будущем посещаемость веб-ресурса вырастет или понадобится больше памяти для файлов сайта. Из-за этого некоторое количество ресурсов простаивает. По статистике, только 20% клиентов используют свои серверы на 80%. Остальным 80% администраторов хватает 20%, следовательно большая часть сервера не используется. С точки зрения покупателя, это разумно. Сайт должен быть готов к неожиданностям. Хостинг-провайдеру это невыгодно. Бывает, что безответственные провайдеры перепродают неиспользованные ресурсы. А когда первоначальный владелец хочет использовать свои приобретенные ресурсы, случается перегрузка сервера.
    • Плохая оптимизация сайта. Настройки ресурса сделаны так, что маленькое количество посетителей генерирует много запросов. В этом случае нужно оптимизировать работу сервера с пользовательскими запросами.
  2. Второй причиной возникновения кода 502 могут явиться ошибки РНР. Если для расширения функционала сайта в панель управления были добавлены некорректно настроенные плагины, они могут выдавать проблемы в своей работе. Вместе с ними ошибку покажет и сайт целиком. Также если код сайта написан неправильно, запросы могут давать отрицательный результат.
  3. Ошибка браузера. Проблема может быть на стороне пользователя, если у него установлены расширения, которые нарушают соединение с сервером сайта.

Чем отличается ошибка 502 Bad Gateway Nginx

Между браузером и сервером может стоять веб-сервер. Он используется для снижения нагрузки на сервер, аутентификации пользователей и многого другого. Самые популярные программы для создания веб-сервера ― Nginx и Apache. Так как веб-сервер является посредником между браузером и сервером, то именно он будет оповещать пользователя о проблеме. Поэтому в зависимости от веб-сервера в сообщении вы можете увидеть надпись Bad Gateway Nginx или Bad Gateway Apache. При этом причины возникновения проблемы одинаковы.

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

Способ 1 ― введите команду top в командной строке сервера:

502  Bad Gateway 4

Mem ― вся оперативная память.

Swap ― раздел подкачки.

Посмотрите на строку Memfree. Это количество свободного места на сервере. Если там указано маленькое число, ошибка 502 Bad Gateway появляется из-за нехватки памяти. Увеличьте количество оперативной памяти и проблема пропадёт. Также в результатах можно будет увидеть, какую нагрузку на сервер даёт каждый отдельный процесс.

Способ 2 ― введите команду free -m.

502  Bad Gateway 5

Mem ― вся оперативная память.

Swap ― раздел подкачки.

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

Проверьте логи сервера. Если проблема возникла в момент каких-либо обновлений на сайте, проверьте журнал изменений, чтобы отменить те доработки, которые нарушили функциональность сервера. Также в логах можно увидеть DDos-атаку. Если дело в нехватке памяти, в логах отобразится ошибка OOM (out of memory).

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

  1. 1. Войдите в панель управления WordPress.
  2. 2. Перейдите во вкладку «Плагины» ― «Установленные».
  3. 3. Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

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

Проверьте, как работают вспомогательные службы, например MySQL и Memcached. Иногда они могут стать причиной 502 ошибки.

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

Если сайт находится на VPS

Чаще всего на VPS используется связка: Nginx + бэкенд-сервер (Apache, PHP-FPM, Gunicorn, NodeJS). Ошибка 502 возникает в случае, если Nginx не может получить ответ от этих сервисов. Клиенты с VPS сталкиваются с «502 Bad Gateway», когда:

  • какой-то из сервисов выключен. Перезапустите веб-сервер Apache, PHP-FPM либо другой сервис, с которым работает Nginx;
  • между Nginx и бэкенд-сервером некорректно настроена связь. Например, Nginx производит обращение к порту 8080, а веб-сервер Apache «слушает» на 8081. В этом случае необходимо скорректировать настройки веб-сервера.

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

  1. Точное время наблюдения проблемы.
  2. Название сайта, на котором была замечена проблема.
  3. Если ошибка отображается не сразу, а после определённых действий (добавление изображения, отправка формы с сайта, импорт файлов), подробно опишите порядок действий, по которому мы сможем воспроизвести проблему.
  4. Если для воспроизведения проблемы необходимо авторизоваться в административной части сайта, предоставьте логин и пароль для доступа.

Загружая страницу, браузер отправляет кучу запросов другим серверам. Они обрабатывают все запросы, затем возвращают код ответа HTTP с определенным результатом. Если в процессе этого возникнет какой-то сбой, на экране браузера отобразится ошибка. И одна из таких ошибок – 502 Bad Gateway. Я расскажу, что она означает, по каким причинам выходит, а еще опишу способы ее устранения.

Что означает ошибка 502 Bad Gateway

Ошибки, принадлежащие серии 5xx, означают появление проблем на стороне сервера. Если взять конкретно ошибку 502 Bad Gateway, то ее появление будет означать получение неправильного ответа сервера. «Виновниками» в такой ситуации обычно являются прокси, DNS или хостинг-серверы.

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

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

Подписаться

Что делать, если вы пользователь

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

Перезагрузить страницу

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

Проверить подключение к интернету

Стоит проверить работу модема и попробовать загрузить другие страницы. Убедитесь, что подключение к интернету стабильное. Еще вариант – перезапустить маршрутизатор и попробовать снова загрузить проблемный сайт.

Очистить кэш и cookies

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

Для любого браузера актуально – зайти в историю просмотров и найти ссылку «Очистить историю». В новом окне отметить пункты с кэшем и cookies, затем подтвердить действие. Как только данные будут удалены, надо вновь попробовать загрузить страницу. Не помогло? Идем дальше!

Очистить кэш DNS

Допустимо, что в кэше установлено неправильное значение IP-адреса. Для таких случаев можно использовать сброс DNS кэша. В ОС Windows необходимо открыть инструмент «Командная строка» (вводим в поисковую строку название программы и выбираем запуск от имени администратора).

Далее следует ввести вот такую команду и активировать ее нажатием на клавишу Enter:

ipconfig /flushdns

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

Как очистить кэш DNS через командную строку Windows

Для Linux действие примерно схоже, но команда выглядит иначе. Открываю утилиту «Терминал» и ввожу в поле вот такой запрос:

Для Ubuntu:

sudo service network-manager restart

Для других дистрибутивов:

sudo /etc/init.d/nscd restart

Попробовать зайти с другого браузера

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

Отключить плагины и расширения

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

Зайти на страницу позже

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

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

Ошибка 400 Bad Request

Что такое ошибка 500 и когда она возникает

Что делать, если вы администратор сайта

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

Проверка журнала ошибок

Актуально в случаях, при которых ошибка 502 Bad Gateway появляется после внесения изменений или обновления. Определить это очень просто, нужно лишь проверить журнал ошибок. В CMS WordPress можно включить запись возникающих ошибок, добавив в файл wp-config.php вот такие строки:

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

define( 'WP_DEBUG_DISPLAY', false );

После этого все записи начнут отображаться в файле debug.log. Храниться он будет в директории wp-content. Понадобится некоторое время, чтобы причины ошибок были записаны. Потом можно тщательно изучить записи и уже на основе их предпринимать конкретные изменения.

Проверка плагинов

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

Отключение плагина в WordPress путем переименования папки

Проверка сети CDN

Сети CDN и службы предотвращения DoS тоже могут влиять на работу сайта. Обычно виновник проблемы указывается на странице с кодом ошибки. Например, если под кодом 502 Bad Gateway есть строка cloudflare-nginx, значит, для исправления ошибки надо обратиться в службу поддержки CloudFlare. Можно отключить данный сервис, но потом придется долго ждать обновления DNS (это может занять несколько часов).

Один их вариантов отображения ошибки 502 Bad Gateway

Ошибка 502 на виртуальном хостинге VPS/VDS

Ошибка 502 Bad Gateway возникает из-за превышения лимита трафика пользователей, «шалостей» бота, скачивания сайта или даже DoS‑атаки. Решение данной проблемы кроется в ограничениях памяти.

Запустить команду top

Данный запрос в терминале поможет установить наличие свободной памяти. Этим же способом можно проверить, работает ли Apache.

Посмотреть логи Apache и nginx

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

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

Увеличить объем памяти

Бывает, что с логами все нормально, но памяти на обработку запросов все равно не хватает. Узнать об этом просто – при проверке командой top будет выдана ошибка OOM (out of memory). В таких случаях можно просто увеличить ее объем. Можно просто заказать другой тариф, в котором количество предоставляемой памяти больше. Подробнее об этом.

Проверить лимиты на php-cgi процессы

Если после проверки командой top показано, что свободной памяти еще достаточно, значит, на php-cgi процессы установлены лимиты. Для решения надо открыть конфигурационный файл Apache – httpd.conf, найти секцию модуля FastCGI (mod_fascgi или mod_fastcgid) и увеличить лимит.

Обратиться к службе технической поддержки

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

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

Важно: сбой Bad Gateway может появляться как на определенной странице сайта, так и сразу на всех. Но наиболее часто встречается именно первый случай.

Чаще всего возникает по вине хостинга, DNS или прокси-сервера. Логика появления ошибки следующая: файлы публичного веб-сайта всегда располагаются на сервере. Пользовательский клиент (чаще всего, браузер) делает соответствующий запрос, чтобы получить данные из физического сервера и вывести их на пользовательском компьютере. Когда отправить файлы не получается — выводится ошибка с кодом от 500-й до 511-й.

Сам текст ошибки 502 может различаться. Часто встречаются варианты 502 Server Error, Bad Gateway, Temporary Error, HTTP 502 и другие. 

Как исправить ошибку 502 вебмастеру: пошаговый алгоритм

Рассмотрим возможные причины и разберем алгоритм исправления источника ошибки.

Недостаток вычислительных ресурсов. Тарифный план хостинга

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

Что делать?

  1. Проверьте статическую нагрузку, текущий размер оперативной памяти и размер хранилища для файлов сайта на используемом хостинге. 
  2. Управление услугами на хостинге Beget. Для базового хостинга можно менять разрешенную нагрузку, дисковую квоту и количество сайтов

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

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

  3. Проверьте оперативную память сервера. Чтобы проверить текущий объем оперативной памяти, запустите командую строку сервера, затем укажите команды free -m (либо команду tor).

Проверяем доступный объем памяти сервера. MiB Mem — постоянная память. Mib Swap — память файла подкачки

Проверяем доступный объем памяти сервера. MiB Mem — постоянная память. Mib Swap — память файла подкачки

Обратите внимание на параметры total (общий объем памяти), free (свободный объем памяти в данный момент), used (использующийся объем памяти в данный момент).

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

Увеличение лимитов FastCGI

HTTP-сервер Apache настраивается путем размещения директив в текстовых файлах конфигурации. Основной файл конфигурации обычно называется httpd.conf. Его расположение устанавливается во время компиляции, но может быть переопределено флагом командной строки -f.

Проект HTTP-сервера Apache, широко известный как Apache HTTPD или Apache, представляет собой HTTP-сервер с открытым исходным кодом, на котором работает большая часть веб-приложений. Apache HTTPD является кроссплатформенным и может работать в системах на базе Unix и Windows.

Что делать?

  1. Найдите и отредактируйте файл httpd.conf. 
  2. Измените установленное значение для FastCGI. 
  3. Увеличьте его на 500-600 пунктов.

Обратите внимание: директива клиент-серверного протокола FastCG в конфигурационном файле обозначается как mod_fastcgi:

Пример содержимого файла httpd.conf

Пример содержимого файла httpd.conf

Глобальные изменения на сайте: обновления, установка плагинов, изменение дизайна или структуры URL

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

Что делать?

  1. Найдите файл с логами. Обычно кнопка с доступом к логам сервера есть в административной панели. Самое частое название такого файла — access.log. Если вы не нашли его — напишите в саппорт хостинга. Уточните, что серверные логи нужны вам для решения ошибки.
  2. Проанализируйте файл с ошибками. Логи сервера с ошибками обычно по умолчанию отправляются в файл error.log
  3. Ищите значение OOM или другие ошибки. Обязательно обращайте внимание на директиву %s со значением 502 (это и есть код состояния искомой нами ошибки).

Директивы в формате combined выглядят так:

  • %s — код состояния HTTP.
  • %h — IP-адрес запроса.
  • %{User-Agent} — HTTP-заголовок.
  • %l — полное название хоста.
  • %b — отданные байты.
  • %u — пользователь.
  • %r — тип и содержимое запроса.
  • %t — время запроса.

Cloudflare

Если вы настроили Cloudflare или похожее решение против хакерских атак, попробуйте отключить эту защиту. Часто Bad Gateway ошибка возникает по вине таких сервисов. То же самое можно сказать и о сторонних сетях доставки содержимого (СDN), с которыми соединен ваш сайт.

Капча, которая используется сетью Cloudflare для защиты сайта от хакерских атак

Капча, которая используется сетью Cloudflare для защиты сайта от хакерских атак

Что делать?

  1. Временно отключите Cloudflare.
  2. Временно отключите CDN (сеть доставки содержимого).
  3. Проверьте, стала ли доступна проблемная страница. Если да — настройте используемые внешние сервисы так, чтобы они не ограничивали доступ к странице.

Важно: отключение вашего сайта от любых сервисов, которые перенаправляет ваш трафик на собственные сервера (например, тот же CloudFlare) произойдет не сразу, а только через 5-6 часов или даже дольше, так как должно произойти обновление записей DNS.

Конфликт плагинов, проблемы после обновления CMS

Всегда запоминайте (а лучше — записывайте) все изменения, которые вы делаете на сайте. Будь то установка плагина, добавление нового функционала или изменение дизайна страницы. Так вы сможете просто диагностировать источник появления ошибки 502 и сразу перейти к его устранению. Например — удалить конфликтующий плагин через админку используемой CMS.

Откат к исправно работающей версии сайта может стать решением Bad Gateway в ряде случаев.

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

Что делать?

Показываем на на примере хостинга Beget:

  1. Чтобы откатиться к исправно работающей версии сайта, откройте раздел Backup в панели управления используемого хостинга. 
  2. Раздел BackUp на хостинге Beget доступен с главной страницы

    Раздел BackUp на хостинге Beget доступен с главной страницы

    Вы можете настроить автоматическое копирование или бэкап по требованию. 

  3. Чтобы выгрузить файлы (создать бэкап), выберите необходимые файлы, отметив чекбокс слева от них:
  4. Выгружаем резервную копию выбранных данных на хостинге Beget

    Выгружаем резервную копию выбранных данных на хостинге Beget
  5. Чтобы восстановить сайт из резервной копии, выберите копию (в Beget «Текущее состояние») и затем кликните по синей стрелке: 
  6. Восстанавливаем файлы сайта из резервной копии

    Восстанавливаем файлы сайта из резервной копии
  7. Далее следуйте подсказкам хостинга, чтобы восстановить работоспособность сайта из бэкапа максимально корректно.

Как исправить ошибку 502 пользователю: пошаговый алгоритм

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

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

Чтобы устранить ошибку, выполните следующие действия:

  • Напишите администратору сайта о возникшей проблеме.
  • Попробуйте зайти на сайт в то время, когда поток пользователей небольшой (например, очень рано утром или ночью).
  • Отключите все плагины / расширения в используемом браузере (в редких случаях они могут приводить к конфликтам). Подтвердить этот источник сбоя поможет просмотр проблемного сайта в режиме инкогнито.
  • Очистите DNS-кэш в своей системе. Для этого нужно открыть встроенный в Windows инструмент cmd и прописать команду ipconfig /flushdns:

Запустите командную строку и укажите команду ipconfig /flushdns

Запустите командную строку и укажите команду ipconfig /flushdns

Все, DNS cache успешно очищен:

Мы успешно очистили DNS

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

Резюме: самые частые причины появления ошибки

Итак, можно вывести четыре самых распространенных сценария появления Bad Gateway на сайте:

  1. Недостаток вычислительных ресурсов. Может проявляться на очень слабых, старых машинах.
  2. Глобальные изменения на сайте: обновления, установка плагинов, изменение дизайна или структуры ссылок.
  3. Конфликт плагинов. Проблемы после обновления версии CMS.
  4. Cloudflare и подобные сервисы + CDN (сеть доставки содержимого).

Найдите свою причину и устраните ее, следуя нашему алгоритму. 

Ошибка 502 при открытии сайта может появиться неожиданно. В этой статье мы расскажем, что значит код ошибки 502 и что может сделать пользователь и владелец сайта, чтобы её исправить.

Ошибка 502 Bad Gateway: что значит

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

Ошибка 502 Bad Gateway возникает при неправильной работе прокси-сервера, DNS-сервера и чаще всего сервера, на котором размещён сайт. Проблема может распространяться как на весь ресурс, так и на отдельные страницы. Это зависит от характера проблемы. Существуют разновидности 502 ошибки: Bad Gateway Nginx, Bad Gateway Apache. Об их отличиях мы расскажем ниже. Также эта ошибка может иметь формулировки:

  • Bad Gateway: Registered endpoint failed to handle the request, Temporary Error (502),
  • Error 502,
  • Bad 502 Gateway,
  • 502 Error,
  • 502. That’s an error,
  • 502 Service Temporarily Overloaded,
  • 502 Server Error: The server encountered a temporary error and could not complete your request,
  • 502 – Web server received an invalid response while acting as a gateway or proxy server,
  • 502 Bad Gateway Nginx,
  • 502 Proxy Error,
  • HTTP 502,
  • HTTP Error 502 Bad Gateway.


Что значит плохой шлюз: ошибка 502

Причины возникновения ошибки 502 Bad Gateway

  1. Первая и основная причина ― перегрузка сервера. Перегрузка может быть вызвана несколькими проблемами:

  2. Большое количество посетителей одновременно. Веб-ресурс может посещать ограниченное количество посетителей. Сколько человек может посетить сайт зависит от возможностей сервера (размера оперативной памяти) и настроек, которые сделал создатель ресурса. Если по какой-либо причине на сайт зайдёт больше пользователей, чем запланировано, сервис может не справиться и страница выдаст код 502. Такое случается при рекламных акциях и распродажах в интернет-магазинах.
  3. Атака хакеров или DDoS-атака. Эта проблема связана с предыдущей причиной перегрузки. Хакер имитирует большой наплыв пользователей, из-за чего сервер выходит из строя. Такие атаки могут быть использованы для снижения продаж.
  4. Плохая оптимизация сайта. Настройки ресурса сделаны так, что маленькое количество посетителей генерирует много запросов. В этом случае нужно оптимизировать работу сервера с пользовательскими запросами.
  5. Второй причиной возникновения кода 502 могут явиться ошибки РНР. Если для расширения функционала сайта в панель управления были добавлены некорректно настроенные плагины, они могут выдавать проблемы в своей работе. Вместе с ними ошибку покажет и сайт целиком. Также если код сайта написан неправильно, запросы могут давать отрицательный результат.
  6. Ошибка браузера. Проблема может быть на стороне пользователя, если у него установлены расширения, которые нарушают соединение с сервером сайта.

Чем отличается ошибка 502 Bad Gateway Nginx

Между браузером и сервером может стоять веб-сервер. Он используется для снижения нагрузки на сервер, аутентификации пользователей и многого другого. Самые популярные программы для создания веб-сервера ― Nginx и Apache. Так как веб-сервер является посредником между браузером и сервером, то именно он будет оповещать пользователя о проблеме. Поэтому в зависимости от веб-сервера в сообщении вы можете увидеть надпись Bad Gateway Nginx или Bad Gateway Apache. При этом причины возникновения проблемы одинаковы.

Как исправить ошибку 502

Что делать, если вы пользователь

  1. Перезагрузите страницу, если проблема была вызвана наплывом посетителей. Возможно, через некоторое время посетители уйдут со страницы и вы сможете увидеть контент.
  2. Попробуйте зайти на другой веб-ресурс. Если вы можете зайти на другой сайт, значит проблема на стороне владельца ресурса и вы ничего не можете сделать. Вернитесь на страницу позже, когда администратор восстановит доступ.
  3. Проверьте подключение к интернету. Из-за низкой скорости или нестабильности соединения браузер может не получать данные с сервера.
  4. Запустите браузер в режиме «Инкогнито». В режиме «Инкогнито» браузер работает с базовыми настройками. Если вам удалось зайти на веб-ресурс в этом режиме, значит одно из ваших расширений браузера мешает соединению. Это расширение нужно отключить.
  5. Почистите файлы cookies. Если при повторном входе на сайт всё равно отображается ошибка 502, очистите кэш браузера. Возможно, доступ уже восстановлен, но ваш браузер обращается к старой версии страницы из кэша.
  6. Очистите кэш DNS. DNS-кэш — это временная база данных вашего компьютера, которая хранит записи обо всех последних посещениях и попытках посещений веб-сайтов и их IP-адресах. Кэш позволяет ускорить вход на часто посещаемые веб-ресурсы. Если у сайта изменились DNS, а данные из кэша отправляют на старый IP-адрес, в браузере появится код 502. После очистки браузер начнёт обращаться к новому IP-адресу.


Как очистить кэш DNS

В зависимости от вашей операционной системы очистите кэш по одной из инструкций.

  1. Откройте командную строку. Для этого введите в поисковую строку «Командная строка» и выберите появившееся приложение:
  1. Введите команду:

ipconfig /flushdns

  1. Дождитесь сообщения об очистке кэша:
  1. Откройте терминал клавишами Ctrl+Alt+T.
  2. Введите команду:

Для Ubuntu:

sudo service network-manager restart

Для других дистрибутивов:

sudo /etc/init.d/nscd restart

  1. Войдите в терминал. Для этого нажмите клавиши Command + Space. Введите Терминал и нажмите на найденное приложение.
  2. Введите команду:

sudo killall -HUP mDNSResponder

Готово, вы очистили кеш DNS. Попробуйте заново зайти на сайт.

Что делать, если вы владелец сайта

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

Способ 1 ― введите команду top в командной строке сервера:

Mem ― вся оперативная память.

Swap ― раздел подкачки.

Посмотрите на строку Memfree. Это количество свободного места на сервере. Если там указано маленькое число, ошибка 502 Bad Gateway появляется из-за нехватки памяти. Увеличьте количество оперативной памяти и проблема пропадёт. Также в результатах можно будет увидеть, какую нагрузку на сервер даёт каждый отдельный процесс.

Способ 2 ― введите команду free -m.

Mem ― вся оперативная память.

Swap ― раздел подкачки.

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

Проверьте логи сервера. Если проблема возникла в момент каких-либо обновлений на сайте, проверьте журнал изменений, чтобы отменить те доработки, которые нарушили функциональность сервера. Также в логах можно увидеть DDos-атаку. Если дело в нехватке памяти, в логах отобразится ошибка OOM (out of memory).

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

  1. 1.

    Войдите в панель управления WordPress. Если вы пользуетесь услугой REG.Site, войти в панель управления CMS можно прямо из Личного кабинета.

  2. 2.

    Перейдите во вкладку «Плагины» ― «Установленные».

  3. 3.

    Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

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

Проверьте, как работают вспомогательные службы, например MySQL и Memcached. Иногда они могут стать причиной 502 ошибки.

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


Сайт находится на виртуальном хостинге REG.RU

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

  1. Точное московское время наблюдения проблемы.
  2. Название сайта, на котором была замечена проблема.
  3. Если ошибка отображается не сразу, а после определённых действий (добавление изображения, отправка формы с сайта, импорт файлов), подробно опишите порядок действий, по которому мы сможем воспроизвести проблему.
  4. Если для воспроизведения проблемы необходимо авторизоваться в административной части сайта, предоставьте логин и пароль для доступа.


Сайт находится на VPS REG.RU

Чаще всего на VPS используется связка: Nginx + бэкенд-сервер (Apache, PHP-FPM, Gunicorn, NodeJS). Ошибка 502 возникает в случае, если Nginx не может получить ответ от этих сервисов.
Клиенты с VPS сталкиваются с «502 Bad Gateway», когда:

  • какой-то из сервисов выключен. Перезапустите веб-сервер Apache, PHP-FPM либо другой сервис, с которым работает Nginx;
  • между Nginx и бэкенд-сервером некорректно настроена связь. Например, Nginx производит обращение к порту 8080, а веб-сервер Apache «слушает» на 8081. В этом случае необходимо скорректировать настройки веб-сервера.

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

  1. Точное московское время наблюдения проблемы.
  2. Название сайта, на котором была замечена проблема.
  3. Если ошибка отображается не сразу, а после определённых действий (добавление изображения, отправка формы с сайта, импорт файлов), подробно опишите порядок действий, по которому мы сможем воспроизвести проблему.
  4. Если для воспроизведения проблемы необходимо авторизоваться в административной части сайта, предоставьте логин и пароль для доступа.

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

Что такое ошибка 502 и как её исправить

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

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

Как пользователю исправить ошибку 502

Идите от простого к сложному — и в какой‑то момент ошибка, возможно, исчезнет.

Проверьте подключение к интернету

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

Посмотрите, у всех ли отображается ошибка 502

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

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

  • Down for Everyone or Just Me;
  • Is It Down Right Now;
  • Reg.ru;
  • 2IP.

Обновите страницу

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

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

Попробуйте другой браузер

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

Отключите плагины и расширения в браузере

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

Очистите кеш браузера

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

Вот как это сделать в Chrome.

  1. В настройках перейдите к разделу «Конфиденциальность и безопасность» и выберите пункт «Очистить историю».
  2. Поставьте галочки напротив второго и третьего пунктов: «Файлы cookie и другие данные сайтов», «Изображения и другие файлы, сохранённые в кеше».
  3. Затем нажмите «Удалить данные».

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

Очистите кеш DNS

В Windows 10

  • Чтобы вызвать консоль, напишите cmd в окне поиска меню «Пуск».
  • В открывшемся окне введите команду ipconfig /flushdns и нажмите Enter.

В Windows 7

  • В консоли введите команду ipconfig /flushdns и нажмите Enter.
  • Затем там же выполните команды net stop dnscache и net start dnscache, чтобы перезапустить службу DNS‑клиента.

В macOS

  • Нажмите на иконку поиска в правом верхнем углу и напишите «Терминал».
  • В открывшемся окне терминала введите команду sudo killall -HUP mDNSResponder; sleep 2;.

В Linux

  • Запустите терминал сочетанием клавиш Ctrl + Alt + T или из основного меню.
  • В открывшемся окне введите команду sudo service network‑manager restart и нажмите Enter. Это точно работает на Ubuntu и иногда на других дистрибутивах. Альтернатива — команды sudo systemd‑resolve —flush‑caches или sudo /etc/init.d/nscd restart.

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

Перезагрузите роутер

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

Измените DNS‑сервер по умолчанию

В настройках роутера укажите адреса публичных DNS‑серверов. Например, можно вписать IPv4 для Google Public DNS: 8.8.8.8 или 8.8.4.4. Или, если ваш сервер поддерживает IPv6, задайте адреса 2001:4860:4860::8888 и/или 2001:4860:4860::8844.

Зайдите позднее

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

Сообщите администратору

Если у вас есть контакты администратора сайта, расскажите ему об ошибке 502. Возможно, он ещё не в курсе проблемы и, соответственно, пока не решает её.

Как администратору исправить ошибку 502

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

Проверьте журнал ошибок

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

Отключите или удалите свежие плагины и компоненты

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

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

Попробуйте отключить анти‑DDoS

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

Но если в этой цепочке что‑то идёт не так, возникает ошибка 502. Попробуйте временно отключить анти‑DDoS — иногда после этого проблема исчезает.

Увеличьте количество ресурсов

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

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

Попросите помощи

Поищите решение проблемы в FAQ вашего хостера или на Stack Overflow. Высока вероятность, что вы не первый, кто столкнулся с такой ситуацией, и готовый рецепт уже описан в деталях.

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

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

Читайте также 💿⚙️💻

  • Что делать, если тормозит браузер
  • Как исправить ошибку CPU Fan Error при загрузке компьютера
  • Что делать, если DNS-сервер не отвечает
  • Что такое ошибка 500 и как её исправить
  • Что означает 404 Not Found и другие ошибки веб-страниц

Понравилась статья? Поделить с друзьями:
  • Error 502 server failed что означает
  • Error 502 server failed перевод
  • Error 502 sans
  • Error 502 proxy error apache
  • Error 496 что значит