2013-04-16 11 views
23

私は外部ではHTTPSを使用するが、内部ではHTTPを使用するリバースプロキシを使用しています。リバースプロキシのデファクトスタンダードとは何ですか?

これは、デフォルトでは、アプリ内URLがスキームとしてHTTPを持つことを意味します。これは、これが連絡される方法です。

プロキシはどのようにしてHTTPSを使用する必要があることをバックエンドに伝えることができますか?

答えて

26

プロキシは、受信した要求に余分な(または上書きされた)ヘッダーを追加してバックエンドに渡すことができます。これらは、バックエンドに情報を伝達するために使用できます。あなたはVirtualHostのに追加すべきか

# a de facto standard: 
X-Forwarded-Proto: https 
# Non-standard header used by Microsoft applications and load-balancers: 
Front-End-Https: on 

これを:も言及

X-Forwarded-Protocol: https 
X-Forwarded-Ssl: on 
X-Url-Scheme: https 

そしてwikipedia:私はURLスキームでHTTPSの使用を強制するために使用カップルを見てきたこれまでのところ

on 他のプロキシは同様の機能を持つ必要があります。

RequestHeader set X-FORWARDED-PROTOCOL https 
RequestHeader set X-Forwarded-Ssl on 
# etc. 

私はそれをすべて設定するか、動作するものを設定し、他の既知のものを削除することをお勧めします。邪悪なクライアントがそれらを混乱させないようにする。

+2

X-Forwarded-Protocolではなく、X-Forwarded-Protoです。 – mmoya

+2

@mmoya私はそれらを見たことがあります。後者は[googlebattle](http://www.googlebattle.com/?domain=x-forwarded-proto&domain2=x-forwarded-protocol&submit=Go%21)でも勝ちます。 –

+6

[RFC 7239:フォワードHTTP拡張](https://tools.ietf.org/html/rfc7239):) – mmoya

関連する問題