路径一 :http://localhost:8080/content/requestAction!showMainServiceReqDetail.action 路径二 :http://localhost/content/requestAction!showMainServiceReqDetail.action 路径三 :http://localhost/clp/requestAction!showMainServiceReqDetail.action
パス 1 は直接アクセス、パス 2 とパス 3 は nginx を介してアクセスされます
3 つのアクセス前提条件
①ブラウザには Cookie があります。以下の図:
パスにアクセスする http://localhost:8080/content/requestAction!XXX.action
JSESSIONIDをCookieに添付します。
この Cookie には JSESSIONID があり、この訪問に対してバックエンドによって認証できる一意の JSESSIONID が保存されています。これがないとアクセスできません。
②nginx 設定ファイルが設定されています
server { listen 80; server_name localhost; location /clp { #proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8080/content; } location /content { #proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8080/content; }
上記の 3 つのパスを通じてアクセスします。パス 1 とパス 2 は正常にアクセスできますが、パス 3 のアクセスは失敗します
http://localhost:8080/content/requestAction!XXX.action
のアクセス パスが /content であるためです。 /requestAction
,
最初のメソッドのアクセスには nginx が使用されないため、Cookie は失われません。
2 番目のメソッドのアクセスには nginx が使用されますが、パスは転送される前と同じです。 nginx を使用するため、nginx が失われることはありません
方法 3 のアクセスは nginx を使用し、アクセス パスも異なるため、nginx によって転送された Cookie が失われる問題が発生します。
location /clp { #proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cookie_path /content /clp; #这一句就可以解决nginx转发丢失cookie的问题 proxy_pass http://localhost:8080/content; }
上記のアクセスパスは、下図の赤枠内のパス、最初のスラッシュのみです。後ろの人。
以上がNginx が失われた Cookie を転送する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。