ASP.NET Core 2.0でリバースプロキシの後ろにある場合にスキームを維持したい
Created at:
ASP.NET Core 2.0でアプリケーションがリバースプロキシの後ろにあるケースで、リバースプロキシがHTTPSで受け、アプリにはHTTPで受け渡すような構成というのはよくあるかと思います。
しかしASP.NET Coreは標準のままでは Request.Scheme には”http”が入ることになり、”https”が入っていなくて不都合が…という状況が発生します。
そんな時は大抵のリバースプロキシが送り出すであろう X-Forwarded-* ヘッダーフィールドを反映するミドルウェアがあるのでそれを有効にすることで、リバースプロキシにアクセスされた際の情報を維持できます。
その機能を有効にするには UseForwardedHeaders メソッドでミドルウェアを使用するようにし、その際にどのヘッダーフィールドを使うかを指定します。次の例は上位サーバーからのリクエストの X-Forwareded-Proto (スキーム)を見るようにするという設定です。
|