В чем разница между http_cookie и cookie_name в Nginx?

Я хочу добавить удаленный ip в качестве файла cookie в Nginx, чтобы его можно было передать в AWS Load Balancer для сохранения балансировки нагрузки.

location / {
     proxy_set_header Cookie "$http_cookie; ip=$remote_addr";
     proxy_pass http://app_upstream;
}

Я использую их, чтобы установить cookie, но AWS ELB не воспринимает это как липкость. Поскольку этот сервер используется в качестве iframe, я не могу использовать сгенерированные ELB файлы cookie для балансировки нагрузки в случае Safari/iO, которые по умолчанию блокируют сторонние файлы cookie.

Я открыт для того, чтобы отказаться от nginx и написать собственный обратный прокси-сервер.

1 ответ

Решение

Переменная $http_ соответствует заголовку http. Так что, если у вас есть $http_host, он получает хост из заголовка. Если вы скажете $http_cookie, вы получите весь файл cookie.

Переменная $cookie_ относится к конкретному cookie. Поэтому, если у вас есть $cookie_foo, вы получите значение cookie с именем foo, которое может быть bar.

Файлы cookie передаются автоматически, вам не нужно ничего делать, если у них нет другого домена или пути. Если вы пытаетесь добавить определенный файл cookie, это будет:

add_header Set-Cookie foo=bar;
Другие вопросы по тегам