nginx ロード転送ソースリクエスト http/https:X-Forwarded-Proto と nginx の転送ヘッダー

本日、サーバーの問題のトラブルシューティングを行う際、運用および保守レベルで処理されていたため、最終的にサーバーを特定しました。ユーザーが https または http を要求したかに関係なく、転送された要求が https であるかどうかに関係なく、プロキシ サーバーはポート 80 で http を受信しました。またはhttp。そこで、関連部門に問い合わせて、この値を取得できるフィールドがあるかどうかを確認しました。同社は標準ヘッダーである X-Forwarded-Proto も使用しています。

    X-Forwarded-Proto (XFP) ヘッダーは、プロトコル HTTP または HTTPS を識別するために使用される標準ヘッダーです。つまり、ユーザー クライアントが実際にプロキシまたはロード バランサーに接続します。バックエンドのサーバーは、クライアントとロード バランサーの間で使用されるプロトコルを決定する場合、X-Forwarded-Proto 要求ヘッダーを使用できます。nginx は、nginx 標準以外のユーザー定義ヘッダーの読み取りをサポートしていますが、http またはサーバーで underscores_in_headers を使用してヘッダーのアンダースコア サポートを有効にしてから、proxy_set_header を使用してフィールド X-Forwarded-Proto をバックエンド サーバーに送信する必要があります。

#proxy_set_header上下文:http, server, location。语法:
proxy_set_header field value;
#默认值:	
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

#开启header的下划线支持:
underscores_in_headers on;
#设置向后端proxy发送X-Forwarded-Proto字段
proxy_set_header  X-Forwarded-Proto  $http_X_Forwarded_Proto;
proxy_set_header  X-Real-IP  $remote_addr;

    バックエンドサーバーでは、$http_X_Forwarded_Proto を使用して受信します。$http_x_forwarded_proto などの小文字を使用して受信することもできます。先頭に http_ を追加する必要があります。

おすすめ

転載: blog.csdn.net/meimeieee/article/details/128837865