Назад | Перейти на главную страницу

В чем разница между 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, я не могу использовать файлы cookie, сгенерированные ELB, для балансировки нагрузки в случае Safari / iOs, которые по умолчанию блокируют сторонние файлы cookie.

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

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

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

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

add_header Set-Cookie foo=bar;