Рейтинг:0

Обрабатывает ли NGINX некоторые события/коды ошибок без их настройки в конфигурации по умолчанию?

флаг nl

Вопрос: Существуют ли какие-либо события/коды ошибок, которые NGINX обрабатывает по умолчанию?

Задний план: Следующая часть моей конфигурации останавливает хотлинкинг и возвращает ошибку 403.

    расположение ~* \.(jpg|png|svg|webp|ico)$ {
        valid_referers нет заблокированных server_names ~\.bing\. ~\.duckduckgo\. ~\.фейсбук\. ~\.гугл\. ~\.инстаграм\. ~\.твиттер\. ~\.yahoo\.;
        если ($invalid_referer) {
            вернуть 403;
        }
    }

Этот раздел блокирует нежелательные методы HTTP и возвращает ошибку 405.

если ($request_method !~ ^(GET|HEAD|POST)$) {
    вернуть 405;
}

Это заставило меня задуматься, есть ли ошибки, которые мне не нужно настраивать в NGINX?

Например, 400 Ошибка неверного запроса. Знает ли NGINX, что такое плохой запрос, не добавляя если утверждение и некоторая логика в конфигурации?

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

Рейтинг:2
флаг co

Nginx будет обрабатывать все, кроме ошибок уровня приложения. Несколько примеров будут

400, если запрос нарушает указанный формат RFC.
403, если nginx не может прочитать файл из-за разрешения.
404, если файл не найден.

И так далее и тому подобное, единственное, с чем nginx не справляется, — это требования, не относящиеся к RFC, такие как ваша защита от хотлинков, и вещи, выходящие за его рамки, такие как бэкенды fastcgi/uwsgi/http.

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

myNewAccount avatar
флаг nl
Потрясающий! В примере с ошибкой 400 мне все еще нужно указать местоположение в моей конфигурации, чтобы, когда NGINX увидел ошибку, он знал, что отправить? Например, `error_page 400 /html/400.html;`
Martin Fjordvald avatar
флаг co
Он имеет простую страницу ошибок по умолчанию, см. здесь: https://www.google.com/search?q=nginx+400+example&tbm=isch. Вы можете настроить его, чтобы он выглядел лучше, да, но это не обязательно.

Ответить или комментировать

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