В чем разница между 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;