3

I added custom error page to Nginx by these lines:

error_page 400 /custom.html;
location = /custom.html {
  root /somewhere/html;
  internal;
}

location /test {
  return 400;
}

It returns my custom error page for test location; The problem is for some requests like when request header is too large, It still returns the default error page of Nginx.

<html>
  <head><title>400 Request Header Or Cookie Too Large</title></head>
  <body>
  <center><h1>400 Bad Request</h1></center>
  <center>Request Header Or Cookie Too Large</center>
  <hr><center>nginx</center>
  </body>
</html>

Amir
  • 341
  • 1
  • 5
  • 16

1 Answers1

3

Apparently this specific error uses code 494 internally.

You can try with

error_page 494 =400 /custom.html

I found that on the nginx mailing list:

Try handling 494 errors instead. It's a custom code used to report "Request Header Too Large" errors, translated to 400 just before returning to client. It was introduced in nginx 0.9.4 to make it possible to define a custom error page for these particular errors separately from generic 400 errors.

https://mailman.nginx.org/pipermail/nginx/2018-June/056342.html

Dario Seidl
  • 4,140
  • 1
  • 39
  • 55