Re: add header и log format не видят часть переменных $ssl xx
Maxim Dounin
mdounin на mdounin.ru
Вт Фев 11 15:19:23 UTC 2020
Hello!
On Tue, Feb 11, 2020 at 05:15:24AM -0500, yanda.a wrote:
> Maxim Dounin Wrote:
> -------------------------------------------------------
> > Если хочется логгировать факт использования early data в запросе
> > независимо от текущего статуса handshake'а - то наиболее близкое
> > по смыслу значение можно получить, сохраняя значение переменной
> > $ssl_early_data на этапе поиска конфигурации для запроса с помощью
> > директивы set.
>
> Добрый день! Подскажите, а как это будет работать с внутренним редиректом?
> Если я все верно понимаю, то при внутреннем редиректе rewrite-phase
> отработает еще раз, после чего мы получим не совсем верное значение. Или это
> не совсем верно?
Если речь идёт о внутренних перенаправлениях в рамках исходной
обработки запроса, без ожидания внешних событий (e.g., в рамках
директивы index) - то разницы нет, так как значение
$ssl_early_data будет тем же самым.
Если речь про перенаправления после общения с бэкендом (e.g., с
помощью X-Accel-Redirect), то может потребоваться чуть более
сложная логика, чем просто set. Скажем, какая-то такая
конструкция будет сохранять значение 1, если оно единожды
встретилось:
uninitialized_variable_warn off;
if ($early = "") {
set $early $ssl_early_data;
}
Либо можно использовать map, воспользовавшись тем, что он кэширует
результат при первом обращении:
map $ssl_early_data $early {
default 0;
1 1;
}
server {
...
set $dummy $early;
...
}
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru