$request
Переменная $request содержит полную строку запроса, полученную от клиента, включая HTTP-метод, URI и версию протокола HTTP. — NGINX Core (HTTP)
Описание
Переменная `$request` в NGINX устанавливается в процессе обработки HTTP-запроса и захватывает всю строку запроса, которая включает HTTP-метод (GET, POST и т.д.), запрошенный URI и версию протокола HTTP (HTTP/1.1, HTTP/2 и т.д.). Эта переменная заполняется, когда NGINX начинает обрабатывать запрос, и используется в различных контекстах для предоставления подробной информации о обрабатываемом запросе. Как правило, её значение выглядит как 'GET /index.html HTTP/1.1' или 'POST /api/v1/resource HTTP/2'. Переменная `$request` особенно полезна для ведения логов или для настройки ответов на основе конкретных HTTP-методов или запрошенных URI. Например, анализируя содержимое переменной `$request`, можно разработать правила сервера для условного переписывания URL, логирования паттернов доступа или даже применения политик безопасности в зависимости от метода запроса. Следует отметить, что после того, как запрос был обработан и ответ сгенерирован, переменная `$request` сохраняет состояние запроса таким, каким оно было при первоначальном получении, без изменений в результате последующей обработки или внутренних действий.
Пример конфига
http {
log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';
access_log /var/log/nginx/access.log custom_format;
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь в корректном использовании контекста; он в основном доступен в контекстах обработки запросов, таких как location и server.
Использование `$request` не учитывает переписанные URI, если это специально не запрошено после внутреннего переписывания.