この記事では、場所の一致が 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 フレームワーク、ツール、ソフトウェア、テンプレートを共有
insert into employee values(null,'張三','...
MySQL には、主に left()、right()、substring()、substring_i...
1. はじめにNginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プロキ...
注意すべき点は、イベントバブリング自体の特性上、メリットだけでなくデメリットも生じるということです。...
どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...
この記事は主に、MySQL インデックスの長さ制限の原理の分析を紹介します。サンプル コードを通じて...
重要な注意: この記事を読む前に、Docker コンテナに関する知識と、一般的な Docker 操作...
目次日付オブジェクト日付オブジェクトの作成新しい日付()日付を取得する()取得日()月を取得する()...
使用状態useState は、関数コンポーネント内で呼び出すことで、コンポーネントに内部状態を追加し...
<本文> <div id="ルート"> <h1&...
クエリで EXPLAIN を実行するとデータベースが変更されるかどうかを尋ねられた場合、おそらく「い...
目次序文Dockerfile の紹介Dockerfileはイメージプロセスを構築するDockerfi...
この記事ではVueを使ってプログレスバーの変更を簡単に実装してみましたので参考にしてください。具体的...
注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...
環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...