Nginx で 1 つのドメイン名で複数のプロジェクトにアクセスする方法

PHPz
リリース: 2023-05-16 21:37:20
転載
2042 人が閲覧しました

ロケーションモジュールのマッチング導入

1.”= プレフィックスディレクティブマッチング。マッチングが成功すると、他のマッチングは停止されます。

2. 通常の文字列命令は最長から最短の順にマッチングされ、マッチングに成功した箇所が ^~ を使用している場合、他のマッチングは停止されます (通常のマッチング)。

3. 設定ファイルの順序で正規表現の指示を照合し、成功すると他の照合を停止します。

4. 3 番目のステップで一致が成功した場合はその結果を使用し、それ以外の場合は 2 番目のステップの結果を使用します。

注意事項

1. 一致順序は、最初に通常の文字列と一致し、次に正規表現と一致します。また、通常の文字列のマッチング順序は、構成内の文字の長さの長いものから短いものに基づいており、通常の文字列を使用して構成された場所の順序は無関係であることを意味します。ただし、正規表現は構成ファイルで指定された順序でテストされることに注意してください。最初に一致する正規表現が見つかると、検索が停止します。

2. 通常の状況では、通常の文字列の位置が正常に一致した後に、正規表現による位置の一致が実行されます。この動作を変更するには 2 つの方法があり、1 つは "= プレフィックスを使用する方法です。このとき、厳密な照合が実行され、照合が成功した直後に他の照合が停止され、同時にリクエストが処理されます。もう 1 つは、「^~」プレフィックスを使用することです。これを正規の文字列とともに使用すると、パスが一致する場合に正規表現をテストしないように nginx に指示します。

location = /uri
ログイン後にコピー

= は完全一致で始まり、完全に一致する場合にのみ有効になります。

location ^~ /uri
ログイン後にコピー
#^~ プレフィックス マッチングは、URL パスの先頭と正規表現の前で実行されます。

location ~ pattern
ログイン後にコピー

~ は、大文字と小文字を区別する正規の一致を示します。

location ~* pattern
ログイン後にコピー

~* は、大文字と小文字を区別しない正規の一致を示します。

location /uri
ログイン後にコピー

修飾子を付けない場合は、通常のマッチングの後にプレフィックス マッチングを意味します。

location /
ログイン後にコピー

ユニバーサル マッチング。他の場所と一致しないリクエストはすべてマッチングされます。これはスイッチのデフォルトと同等です。

設定例

server {
 listen  80;
 server_name test.com;
 index index.html index.htm index.php;
 charset koi8-r;
 access_log /var/log/nginx/host.access.log main;

 # 域名+项目1名称
 location ^~ /a1/ {
   alias /usr/share/nginx/html/a1/public/;
 }

 # 域名+项目2名称
 location ^~ /a2/ {
   alias /usr/share/nginx/html/a2/public/;
 }

 error_page 404    /404.html;

 # redirect server error pages to the static page /50x.html
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root /usr/share/nginx/html/500.html;
 }

 #pass the php scripts to fastcgi server listening on 127.0.0.1:9000
 
 location ~ \.php$ {
  root   html;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param script_filename /scripts$fastcgi_script_name;
  include  fastcgi_params;
 }
 
 location ~ /\.ht {
  deny all;
 }
}
ログイン後にコピー

効果のプレビュー

1. にアクセスしてください。 a1 プロジェクト

Nginx で 1 つのドメイン名で複数のプロジェクトにアクセスする方法

#2. a2 プロジェクトにアクセス


Nginx で 1 つのドメイン名で複数のプロジェクトにアクセスする方法#

以上がNginx で 1 つのドメイン名で複数のプロジェクトにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!