Как добавить недавно установленные куки в журнал доступа nginx
Я хотел бы включить данные cookie в журнал доступа nginx следующим образом:
(упрощенный пример)
log_format foo '$remote_addr "$request" $cookie_bar';
access_log /var/log/nginx/access.log foo;
Это прекрасно работает с запросами, у которых уже есть cookie "bar", но для первого запроса к моему серверу nginx сообщит "-" как значение "bar".
Похоже, моя проблема в том, что nginx просматривает заголовки запроса для значения cookie. Есть ли способ проверить наличие Set-Cookie в ответе и использовать его как запасной вариант?
2 ответа
Я нашел хакерское решение моей проблемы, но оно не решает проблему в целом.
nginx позволяет передавать элементы заголовка ответа в файл журнала, например, Set-Cookie:
log_format foo '$remote_addr "$request" '
'$cookie_bar set_cookie=$sent_http_set_cookie';
К сожалению, он выводит только первую команду Set-Cookie, поэтому мне нужно убедиться, что мой сервер приложений всегда сначала устанавливает cookie-файл бара. И с небольшим регулярным выражением я могу убедиться, что файл cookie установлен в $sent_http_set_cookie
если $cookie_bar
не установлен
Рассматривали ли вы возможность использования перенаправления после установки файла cookie и выполняете ли соответствующие действия в следующем запросе?