nginx のサーバーと場所の構成を簡単に整理してみましょう。 たとえば、URL: www.mask_dev2.com:9999/login/ サーバー パイプの前半部分、つまり www.mask_dev2.com:9999 場所は後半部分を制御します。つまり、/login/ 1 つの nginx を複数のサーバーで構成できます。 各サーバーは複数の場所で構成できます。 URL の前半はどのサーバーを選択するかを制御し、後半はどの場所を選択するかを制御します。これにより、最終的にリクエストが送信される場所が決まります。 サーバー構成 サーバー{ 9999を聞く; サーバー名 www.mask_dev2.cn; 位置 / { デフォルトタイプはtext/htmlです。 コンテンツbylua ngx.say("<p>最初</p>") '; } } サーバー{ 9999を聞く; サーバー名 www.mask_dev2.*; 位置 / { デフォルトタイプはtext/htmlです。 コンテンツbylua ngx.say("<p>2番目</p>") '; } } サーバー{ 聞く 9998; サーバー名_; 位置 / { デフォルトタイプはtext/htmlです。 コンテンツbylua ngx.say("<p>3番目</p>") '; } } まず、nginx に要求されるアドレスは、要求された nginx が配置されているサーバーである必要があります。つまり、IP アドレスは固定です。 つまり、server_name が何であるかは関係なく、現在のサーバーを参照します。 では、現在のサーバーは複数のドメイン名にどのように対応しているのでしょうか?これは、対応するDNSサーバーに追加するだけで済みます。たとえば、ローカルマシンを一時的にDNSサーバーとして扱い、ホストを変更します。
サーバーマッチング順序 server_name と host の一致する優先順位は次のとおりです。 1. 完全一致 どれも一致しない場合 1. listen設定項目の後にdefaultまたはdefault_serverを優先する 場所の設定 サーバーを見つけたら、特定の場所を見つけます サーバー{ 聞く 9998; サーバー名_; 場所 = / { #ルールA } 場所 = /ログイン { #ルールB } 場所 ^~ /static/ { #ルールC } 場所 ~ \.(gif|jpg|png|js|css)$ { #ルールD } 場所 ~* \.png$ { #ルールE } 場所 !~ \.xhtml$ { #ルールF } 場所 !~* \.xhtml$ { #ルールG } 位置 / { #ルール H } 構文規則: 場所 [=||*|^~] uri { … }
まず、= に一致し、次に ^~ に一致し、次にファイル内の順序で正規表現に一致し、最後に / の一般的な一致に一致します。一致が成功した場合、一致を停止し、現在の一致ルールに従ってリクエストを処理します。 しかし、一般的にはそれほど複雑ではなく、ポイントは 3 つあります。
#ウェブサイトのルートと直接一致します。ドメイン名を介してウェブサイトのホームページにアクセスする方が頻繁になります。これを使用すると、処理が高速化されると公式サイトは述べています。 #これはバックエンドアプリケーションサーバーに直接転送されるか、静的ホームページになる場合があります# 最初に必要なルールの場所 = / { proxy_pass http://tomcat:8080/index } # 2 番目の必須ルールは、静的ファイル要求を処理することです。これは、http サーバーとしての nginx の強みです。# ディレクトリ マッチングとサフィックス マッチングの 2 つの構成モードがあり、どちらかを選択するか、両方を使用します。location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { ルート /webroot/res/; } #3 番目のルールは一般的なルールで、動的なリクエストをバックエンド アプリケーション サーバーに転送するために使用されます。#非静的ファイル リクエストはデフォルトで動的なリクエストであり、実際の状況に応じて把握できます。#結局のところ、人気のあるフレームワークの中には、.php や .jsp のサフィックスが付いているものはほとんどありません。location / { プロキシパス http://127.0.0.1:8080/ } 要約する たとえば、フロントエンド システムとバックエンド システムを同時に起動する場合、2 つのサーバーを使用できます (ホストを api、admin に設定したり、ポートを直接変更したりできます)。各サーバーには、特定のページ要求を判断するための 3 つの場所があります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: MySQL 5.5.27 インストール グラフィック チュートリアル
目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...
この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...
一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...
Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...
目次NULLとは何か2種類のNULLなぜ「= NULL」ではなく「IS NULL」と書く必要があるの...
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...
2017 年に Vulhub に取り組み始めてから、私は厄介な問題に悩まされてきました。Docker...
本番環境におけるコンテナの稼働状況を監視することは非常に重要です。監視を通じて、コンテナの稼働状況を...
問題の説明データ転送に Nginx を使用し、フロントエンドとバックエンドが分離された Spring...
MySQL 5.7.19のインストールを例に挙げると、まずダウンロードしますもちろん、最初に行うこと...
目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...
以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
この記事の例では、テーブルのシームレスなスクロールを実現するためのjQueryの具体的なコードを参考...
目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...