この記事では、場所の一致が 1. Nginxロケーションの基本設定1.1 Nginx 設定ファイルアップストリームテスト1{ サーバー 127.0.0.1:8000; } アップストリームテスト2{ サーバー 127.0.0.1:8000; } サーバ{ サーバー名 test.com; 聞く 80; access_log /usr/local/openresty/nginx/logs/test.com_access.log 最新; error_log /usr/local/openresty/nginx/logs/test.com.log エラー; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 3秒; proxy_read_timeout 120秒; proxy_send_timeout 120秒; proxy_next_upstream エラー タイムアウト invalid_header http_404 http_502 http_504 http_500; 場所 /user/ { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; proxy_pass http://test1/; } 位置 / { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; proxy_pass http://test2/; } } 1.2 Pythonスクリプトpython2は実行できる このスクリプトは、リクエストの内容を取得するために使用されます。 これはバックエンドとして機能し、proxy_pass プロキシのバックエンドになります。 #!/usr/bin/env python SimpleHTTPServerをインポートする SocketServerをインポートする ポート = 8000 クラス GetHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): 印刷(self.headers) 自己.send_response(200, "") def do_POST(self): 印刷(self.headers) content_length = self.headers.getheaders('content-length') length = int(content_length[0])、content_lengthの場合、それ以外の場合は0 印刷(self.rfile.read(長さ)) 自己.send_response(200, "") ハンドラ = GetHandler httpd = SocketServer.TCPServer(("", ポート), ハンドラ) httpd.serve_forever() 2. テスト2.1、テスト場所最後に nginxの設定は次のとおりです 場所 /user/ { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; プロキシパス http://test1/; } リクエストURL バックエンドコンテンツ 印刷される内容: ホスト: test1 コンテンツの長さ: 0 ユーザーエージェント: PostmanRuntime/7.26.8 受け入れる: */* 郵便配達トークン: f2bfe770-4f44-4ee9-91c4-060f59dfb26c 受け入れエンコーディング: gzip、deflate、br 127.0.0.1 - - [2021年4月10日 16:54:26] 「POST /test.html HTTP/1.1」 200 - 結論: proxy_pass アドレスに 2.2. テスト場所proxy_pass の末尾に nginxの設定は次のとおりです 場所 /user/ { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; プロキシパス http://test1; } リクエストURL バックエンドコンテンツ 印刷される内容:
結論: proxy_pass アドレスに 2.3. 3つの場所をテストする末尾の nginxの設定は次のとおりです 場所 / ユーザー { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; プロキシパス http://test1; } リクエストURL バックエンドコンテンツ 印刷される内容:
リクエスト 2.4、場所が追加されていません最後の nginxの設定は次のとおりです 場所 / ユーザー { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; プロキシパス http://test1/; } リクエストURL バックエンドコンテンツ 印刷内容:
リクエスト 2.5. ロケーション終了パスの最後に nginxの設定は次のとおりです 場所 /user/ { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; proxy_pass http://test1/haha/; } リクエストURL バックエンドコンテンツ 印刷される内容:
リクエスト 2.6. 場所の終了パスの最後には nginxの設定は次のとおりです 場所 /user/ { proxy_set_header 接続 ""; プロキシ_http_バージョン 1.1; proxy_pass http://test1/haha; } リクエストURL バックエンドコンテンツ 印刷される内容:
リクエスト 結論 |
シリアルナンバー | アクセスURL | 場所の設定 | proxy_pass 設定 | バックエンドで受信したリクエスト | 述べる |
---|---|---|---|---|---|
1 | test.com/user/test.html | /ユーザー/ | http://test1/ | /テスト.html | |
2 | test.com/user/test.html | /ユーザー/ | http://テスト1 | /user/test.html | |
3 | test.com/user/test.html | /ユーザー | http://テスト1 | /user/test.html | |
4 | test.com/user/test.html | /ユーザー | http://test1/ | //テスト.html | |
5 | test.com/user/test.html | /ユーザー/ | http://test1/はは/ | /haha/テスト.html | |
6 | test.com/user/test.html | /ユーザー/ | http://test1/はは | /ハハテスト.html |
日常的なウェブサイトの展開では、 nginx
のproxy_pass
リバースプロキシがよく使用されます。proxy_pass proxy_pass
設定する際には、明確にする必要がある設定があります。
upstram_name
の後に/
が現れた場合、それは絶対ルートパスと同等であり、 nginx
location
で一致するパス部分をプロキシしません。/
がない場合、一致するパス部分もプロキシされます。Nginx の location と proxy_pass パスの詳細な設定に関するこの記事はこれで終わりです。Nginx の location と proxy_pass パスの設定に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。
<<: 25 個の CSS フレームワーク、ツール、ソフトウェア、テンプレートを共有
1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...
:= と = の違い=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の...
質問docker で gdb を実行すると、ブレークポイントに到達しますが、ブレークポイントに入るこ...
Docker-machineはDockerが公式に提供しているDocker管理ツールです。これは d...
目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...
目次序文1. Ingressの展開と構成2. httpsを使用する序文k8sクラスタサービスがデプロ...
目次Tomcat クラスローダー階層WebAppクラスローダー共有クラスローダーカタリナクラスローダ...
この記事では、スライディングスコアリングを実装するためのuniappの具体的なコードを参考までに共有...
目次索引- 総合索引- ユニークなインデックス- 主キーインデックス- 複合インデックス- 全文索引...
目次01. レンダリングが不要な場合はuseStateを使用する02. リンクの代わりにrouter...
まず実装手順について説明します。最終結果 2. コードの実装HTML部分 <div class...
SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...
apt-get を使用してインストールすると、非常に遅くなります。国内のソースを変更すると、この問題...
目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...
目次1. WeChatパブリックプラットフォームからWeChat開発者ツールをダウンロードする2. ...