Nginx的http_cookie和cookie_name有什么区别?

我想在Nginx中添加一个远程ip作为一个Cookie,以便它可以传递到负载平衡器粘性的AWS负载平衡器。

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

我正在使用这些设置cookie,但AWS ELB不接受这种粘性。 由于此服务器被用作iframe,所以我无法使用ELB生成的cookie进行负载平衡,以防Safari / IOS在默认情况下阻止第三方Cookie。

我打开nginx并写一个自定义的反向代理以及。

variables$ http_是关于http头的。 所以如果你有$ http_host,它从头部抓取主机。 如果你说$ http_cookie,你会得到整个cookie。

variables$ cookie_是关于一个特定的cookie。 所以如果你有$ cookie_foo,那么你会得到名为foo的cookie的值,这可能是吧。

Cookies自动传递,除非它有不同的域或path,否则不需要做任何事情。 如果你想添加一个特定的cookie,那将是:

 add_header Set-Cookie foo=bar;