この記事では、場所の一致が 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 フレームワーク、ツール、ソフトウェア、テンプレートを共有
React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは...
MySQL レプリケーションの詳細な説明と簡単な例マスタースレーブレプリケーション技術は、MySQL...
ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...
1. libfastcommon-1.0.43 をインストールします。インストール パッケージは h...
これは Linux 管理者にとって重要な (そして素晴らしい) トピックなので、誰もが Linux ...
ターゲットzabbix フロントエンド監視の iostat コマンドでデータの 1 つを表示します。...
背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...
デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...
多くのウェブサイトでは、ユーザーが簡単に検索したり他のページに移動したりできるように、上部にナビゲー...
すべてには基礎が必要です。家を建てるには基礎が必要です。方程式を解くには、まず九九を覚える必要があり...
この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...
序文コードを書くと、時々基数変換の問題に遭遇します。一般的な変換には、2進数、8進数、10進数、16...
IE10 では、<input> と <input type="passw...
目次機能コンポーネント非同期コンポーネントの書き方とdefineAsyncComponentメソッド...
この記事では、例を使用して、MySQL レプリケーションの原理と実際のアプリケーションについて説明し...