web-dev-qa-db-ja.com

nginxによってプロキシされたマシンからのCookieの設定に関する問題

私のプロジェクトでは、本質的にお互いにHTTPリクエストをプロキシしているマシンの長いチェーンを結び付ける必要があります。こんなふうになります:

Webクライアント-A-B/C-D

ブラウザからリクエストが行われると、最初に、ユーザーのローカルマシンにある薄いPHPプロキシレイヤーを通過します。このプロキシレイヤーの目的は、クロスドメインリクエストなどの複雑さを解決することです。 。それはマシンBにプロキシします-URLを書き換えてCにプロキシするnginxインスタンスだけです。Cは必要な変更を行ってから、Dにプロキシして応答を取得し、それをWebクライアントに返します。Dはリモートサービスです。タッチできないAPI。

マシンCでセッションCookieを設定する際に問題が発生しました。これにより、元の要求に到達します。 Cookieの設定は可能ですが、新しいリクエストがあると、Chrome=ネットワークインスペクターに表示されず、存在しないように見えるCookieから値を取得しようとすると、ノードCがnullpointerexceptionを返します。 。

おそらく、nginxがリクエストをプロキシする方法を微調整することになると思います。

5
Preslav Rachev

サーバー{}ブロックのCのnginx構成に次の設定があるかどうかを確認します。

    proxy_pass_header  Set-Cookie;
    proxy_pass_header  P3P;

それはクッキーを渡すのに十分でしょう。

2