web-dev-qa-db-ja.com

Nginxのhttp_cookieとcookie_nameの違いは何ですか?

ロードバランサーのスティッキのためにAWSロードバランサーに渡すことができるように、リモートIPをCookieとしてNginxに追加したいと思います。

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

これらを使用してCookieを設定していますが、AWS ELBはこれをスティッキ性として受け入れていません。このサーバーはiframeとして使用されているため、デフォルトでサードパーティのCookieをブロックするSafari/iOの場合、ELBで生成されたCookieを負荷分散に使用できません。

私はnginxを捨てて、カスタムリバースプロキシを書くこともできます。

2

変数 $ http _ は、httpヘッダーに関するものです。したがって、$ http_Hostがある場合は、ヘッダーからホストを取得しています。 $ http_cookieと言うと、Cookie全体を取得しています。

変数 $ cookie _ は特定のCookieに関するものです。したがって、$ cookie_fooがある場合、fooという名前のcookieの値を取得します。

Cookieは自動的に渡されるため、ドメインやパスが異なる場合を除いて、何もする必要はありません。特定のCookieを追加しようとすると、次のようになります。

add_header Set-Cookie foo=bar;
3
Grumpy