今日、Apache の nginx リバース プロキシを実行していたときに、ちょっとした問題に遭遇しました。バックエンドの Apache が使用するポートが 8080 であることが判明しました。リバース プロキシを通過後、Wireshark を使用してパケットをキャプチャしたところ、location ヘッダー フィールドの値が http://192.168.1.154:8080/wuman/ であることがわかりました。これがクライアントに返される場合、間違いなく許可されていません。見た目が不自然ですし、Apache の特定の情報も公開されます。 したがって、ここでは、nginx の proxy_redirect を使用して、プロキシ サーバーによって返される応答ヘッダー内の location ヘッダー フィールドと refresh ヘッダー フィールドの値の変更を指定します。 以下はnginxの設定ドキュメントからの抜粋です。 サーバー{ 聞く 80; サーバー名 www.boke.com; 位置 / { プロキシパス http://192.168.1.154:8080; proxy_redirect オフ; } } この時点で、curlを使用して結果を表示します。 [root@localhost nginx]# curl -I http://www.boke.com/wuman HTTP/1.1 301 永久に移動 サーバー: nginx 日付: 2015 年 12 月 24 日 (木) 12:02:00 GMT コンテンツタイプ: text/html; 文字セット=iso-8859-1 接続: キープアライブ 場所: http://192.168.1.154:8080/wuman/ ここで、location はバックエンド サーバーの実際のアドレスとポートを含む応答ヘッダー情報です。これは実際の行では許可されていないため、ここでは proxy_redirect を介してプロキシ サーバーの応答ヘッダーの location フィールドを変更し、クライアントに返すことを計画しています。 サーバー{ 聞く 80; サーバー名 www.boke.com; 位置 / { プロキシパス http://192.168.1.154:8080; プロキシリダイレクト http://192.168.1.154:8080/wuman/ http://www.boke.com/wuman/; } サーバー{ 聞く 80; サーバー名 www.boke.com; 位置 / { プロキシパス http://192.168.1.154:8080; プロキシリダイレクト ~^http://192.168.1.154:8080(.*) http://www.boke.com$1; } 次にcurlは返された結果をチェックします [root@localhost nginx]# curl -I http://www.boke.com/wuman HTTP/1.1 301 永久に移動 サーバー: nginx 日付: 2015 年 12 月 24 日 (木) 12:08:34 GMT コンテンツタイプ: text/html; 文字セット=iso-8859-1 接続: キープアライブ 場所: http://www.boke.com/wuman/ この時点で、場所を確認することが私たちが望む結果になりました。 この時点で、301の置き換えにより新しいページにリダイレクトされました。 ソース: プロキシリダイレクト 構文: proxy_redirect [ デフォルト|オフ|リダイレクト置換 ] デフォルト値: proxy_redirect default 使用フィールド: http、サーバー、場所 プロキシされたサーバーから送信された応答ヘッダーの「Location」フィールドと「Refresh」フィールドを変更する必要がある場合は、このコマンドを使用して設定できます。 プロキシ サーバーによって返される Location フィールドが http://localhost:8000/two/some/uri/ であると仮定します。 この指示: proxy_redirect http://localhost:8000/two/ http://frontend/one/; Location フィールドを http://frontend/one/some/uri/ に書き換えます。 置換フィールドにサーバー名を入力する必要はありません。 proxy_redirect http://localhost:8000/two/ /; これにより、80 以外のポートからの場合でも、サーバーのベース名とポートが使用されます。 「default」パラメータが使用される場合、location および proxy_pass パラメータの設定に基づいて決定されます。 たとえば、次の 2 つの構成は同等です。 場所 / 1 / { proxy_pass http://upstream:port/two/; proxy_redirect デフォルト; } 場所 / 1 / { proxy_pass http://upstream:port/two/; proxy_redirect http://upstream:port/two/ /one/; } ディレクティブで使用できる変数はいくつかあります。 proxy_redirect http://localhost:8000/ http://$host:$server_port/; この指示は繰り返されることがあります: proxy_redirect デフォルト; proxy_redirect http://localhost:8000//; proxy_redirect; /; パラメータ off は、このフィールド内のすべての proxy_redirect ディレクティブを無効にします。 proxy_redirect オフ; proxy_redirect デフォルト; proxy_redirect http://localhost:8000/ /; proxy_redirect ; /; プロキシされたサーバーによって発行された相対リダイレクトにホスト名を追加するには、このディレクティブを使用します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux での MySQL 5.7.18 yum のアンインストールからインストールまでのプロセスの図
>>: jQuery ツリービュー ツリー構造アプリケーション
目次1. 解凍する2. データフォルダを作成する3. MySQLに環境変数を追加する3.1 コントロ...
目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...
大規模な開発に Docker を使用する場合でも、クリーンアップ戦略がなければ、ディスクがすぐにいっ...
この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...
注意: 計画、設計、開発のいずれの場合でも、これらの間違いは避けなければなりません。 1. ナビゲー...
nginx が proxy_pass を設定する場合、末尾に "/" がある U...
<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...
導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...
目次導入主な特徴エフェクト表示キーコード導入音声キューイングシステムは、銀行、レストラン、病院などの...
便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...
目次マップ状態マップゲッターマップミューテーションマップアクション複数のモジュールマップ状態 ...
みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...
Linuxでyumを入力すると、プロンプトが表示されます: -bash: /usr/bin/yum:...
相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...
これは、IP アドレスが制限されている投票 Web サイトの不正行為の手口です。この方法は、投票 W...