more_clear_input_headers
Директива `more_clear_input_headers` удаляет указанные входные заголовки из поступающих запросов.
Описание
Директива more_clear_input_headers является частью динамического модуля NGINX Headers More, который расширяет возможности NGINX по управлению HTTP-заголовками. Эта директива позволяет указать один или несколько заголовков, которые должны быть удалены из входящего HTTP-запроса. Она особенно полезна в сценариях, когда некоторые заголовки не нужны для обработки приложением или могут мешать backend-процессам или протоколам безопасности. Директива может принимать несколько имён заголовков в качестве аргументов, что позволяет удобно очищать несколько заголовков в одной декларации.
С точки зрения контекста конфигурации, эту директиву можно использовать внутри блоков http, server, location, а также внутри if условий внутри location. При использовании в блоке конфигурации указанные заголовки удаляются для запросов, попадающих в этот блок. Важно отметить, что директива удаляет только те заголовки, которые присутствуют во входящих запросах; если указанный заголовок отсутствует, никаких изменений не происходит. Имена заголовков нечувствительны к регистру, то есть 'X-MyHeader' и 'x-myheader' будут рассматриваться как одинаковые. Это обеспечивает гибкость в управлении заголовками в средах NGINX.
Для пользователей, стремящихся поддерживать аккуратное управление заголовками и тем самым контролировать данные, передаваемые в backend-сервисы, эта директива является ключевым элементом. Она особенно важна при работе с API или микросервисами, которые требуют точного формата запроса, гарантируя, что никакие нежелательные данные не будут перенесены в этапы обработки.
Пример конфига
location /api {
more_clear_input_headers 'X-Unwanted-Header';
more_clear_input_headers 'X-May-Contain-Sensitive-Data';
}Убедитесь, что заголовки, которые вы пытаетесь очистить, присутствуют в запросе; в противном случае это не даст никакого эффекта.
Будьте осторожны при очистке заголовков, таких как 'Authorization' или 'Content-Type', так как это может нарушить работу приложения.
Использование этой директивы внутри блока 'if' может привести к сложному поведению; убедитесь, что вы тщательно протестировали это.