Nginx страница ошибки по умолчанию все еще показывает - PullRequest
2 голосов
/ 11 апреля 2020

Я добавил пользовательскую страницу ошибки в Nginx по следующим строкам:

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

location /test {
  return 400;
}

Возвращает мою пользовательскую страницу ошибки для местоположения теста; Проблема в некоторых запросах, например, когда заголовок запроса слишком большой, он по-прежнему возвращает страницу ошибки по умолчанию 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>

1 Ответ

2 голосов
/ 11 апреля 2020

Видимо, эта специфика c ошибка использует код 494 внутри.

Вы можете попробовать с

error_page 494 =400 /custom.html

Я обнаружил, что в списке рассылки nginx :

Попробуйте вместо этого обработать 494 ошибки. Это пользовательский код, используемый для сообщения об ошибках «Request Header Too Large», переведенный в 400 перед возвратом клиенту. Он был введен в nginx 0.9.4, чтобы дать возможность определить пользовательскую страницу ошибок для этих конкретных ошибок отдельно от общих c 400 ошибок.

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

...