Qual é a diferença entre http_cookie e cookie_name no Nginx?

1

Eu quero adicionar o ip remoto como um cookie no Nginx, para que ele possa ser passado para o AWS Load Balancer para a viscosidade do balanceador de carga.

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

Estou usando isso para definir o cookie, mas o AWS ELB não está aceitando isso como viscosidade. Como este servidor é usado como um iframe, não posso usar o cookie gerado pelo ELB para balanceamento de carga no caso do Safari / iOs que bloqueia cookies de terceiros por padrão.

Estou aberto a abandonar o nginx e a escrever um proxy reverso personalizado também.

    
por Ashok Kumar Sahoo 06.09.2017 / 21:30

1 resposta

2

A variável $ http_ é sobre o cabeçalho http. Então, se você tem $ http_host, está pegando o host do cabeçalho. Se você disser $ http_cookie, receberá o cookie inteiro.

A variável $ cookie_ é sobre um cookie específico. Então, se você tem $ cookie_foo, então você obtém o valor do cookie chamado foo, que pode ser bar.

Os cookies são passados automaticamente, você não precisa fazer nada a menos que tenha um domínio ou caminho diferente. Se você está tentando adicionar um cookie específico, seria:

add_header Set-Cookie foo=bar;
    
por 06.09.2017 / 22:39