Nginx

Nginx 中的 http_cookie 和 cookie_name 有什麼區別?

  • September 6, 2017

我想在 Nginx 中添加遠端 ip 作為 Cookie,以便可以將其傳遞給 AWS 負載均衡器以實現負載均衡器的粘性。

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

我正在使用這些來設置 cookie,但 AWS ELB 不接受它作為粘性。由於此伺服器用作 iframe,因此在預設情況下阻止 3rd 方 cookie 的 Safari/iOs 的情況下,我不能使用 ELB 生成的 cookie 進行負載平衡。

我願意放棄 nginx 並編寫自定義反向代理。

變數$http_是關於 http 標頭的。所以如果你有 $ http_host, it’s grabbing the host from the header. If you say $ http_cookie,你得到了整個 cookie。

變數$cookie_是關於一個特定的 cookie。所以如果你有$cookie_foo,那麼你會得到名為foo的cookie的值,它可能是bar。

Cookie 是自動傳遞的,除非它具有不同的域或路徑,否則您無需對其執行任何操作。如果您嘗試添加特定的 cookie,它會是:

add_header Set-Cookie foo=bar;

引用自:https://serverfault.com/questions/872375