Cookie、nginx、およびバックエンドサーバーに問題があります。クッキーはnginxで要求に応じて送信されません
私は何を達成したいことは、このようなものです:
NGINX AT PORT 70
location/{
If session cookie is not set
return 301 localhost/login.html
else
proxy_pass http://somewhere
}
location /login.html{
proxy_pass http://localhost:8080 <- backend server with logging at localhost:8080/login.html
}
location /redirection/ {
return 301 localhost:70
}
ので、それは私がlocalhostを得るように、ロギングサーバにパスをlogin.htmlとし、プロキシに行く必要があります:8080/login.htmlとをすることができそれから、資格情報を処理し、/リダイレクト/フォームアクションでリダイレクトします(処理はJavaScriptで行われます - 実際は現在はクッキーのみを設定しています)。リダイレクション後にサーバーは自分自身にリクエストを送信する必要がありますが、今はセッションクッキーを持っていますので、http://somewhereになります。
しかし、私の問題は、login.htmlではCookieを設定する必要がありますが、そうでないことです。 私はlocalhost:8080/login.htmlだけで試してみると、クッキーはうまくいきます。しかし、何とかproxy_pass
のクッキーが失われます。
P.私が2つのサーバーブロックと/login.htmlを使用し、/リダイレクトがこの2番目のサーバーにある場合、正常に動作しますが、私の構成に2つのサーバーブロックを持つことはできません。
'return 301' - 本当に悪い考えです。それは302でなければならない –