主に location パラメーターの if 判定の構成ジャンプです。オフロードによりサーバーの負荷と圧力を軽減できます。これは非常に一般的なサーバー展開アーキテクチャです。
最後の IP セグメントの範囲に基づいてジャンプ
#域名,ip,端口等信息请自行修改 upstream huaji-01.com { server 192.168.1.100:8080; } upstream huaji-02.com { server 192.168.1.200:8080; } server { listen 80; server_name www.huaji.com; location / { if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.[1,125]$) { proxy_pass http://huaji-01.com; break; } proxy_pass http://huaji-02.com; } }
上記は、最後の IP セグメント 1 ~ 125 のリクエスト ソースを huaji-01.com に転送し、その他のリクエストを huaji-02 に転送します。 .com で同じことを行うことができます。
ルールなどの通常のルールを変更します: $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[0268] $ 末尾は 0268 のような偶数の IP で、huaji-01.com に移動し、その他は 2 番目のドメイン名に移動します;
ルール: $remote_addr ~* ^(112)\.(.*) \.(.*)\.(.*) $ 112 で始まる IP は指定されたドメイン名にジャンプします;
ルール: $http_x_forwarded_for ~* ^(112)\.(.*)\.(. *)\.(.*)$ トラフィックを迂回するための forward Address セグメントに従って、112 で始まる指定されたドメイン名にジャンプします。
if 命令の条件判定の意味:
正規表現のマッチングのうち、
~ は大文字と小文字を区別するマッチング
~* は大文字と小文字を区別しないマッチング
!~ と !~* は大文字と小文字を区別します。それぞれ、区別する不一致と大文字と小文字を区別しない不一致
ファイルとディレクトリの一致、ここで:
-f および !-f は、ファイルが存在するかどうかを判断するために使用されます
-d および !-d は、ディレクトリが存在するかどうかを判断するために使用されます。
-e および !-e は、ファイルまたはディレクトリが存在するかどうかを判断するために使用されます。
-x および !- x は、ファイルが実行可能かどうかを判断するために使用されます
rewrite ディレクティブの最後のパラメータは flag タグです。flag タグは:
last であり、これは同等ですApache の [l] タグに追加して、書き換えを示します。
break このルールのマッチングが完了するとマッチングは終了し、後続のルールはマッチングされなくなります。
redirect は 302 一時リダイレクトを返し、ブラウザのアドレスにはジャンプ後の URL アドレスが表示されます。
permanent は 301 Permanent リダイレクトを返し、ブラウザのアドレスにはジャンプ後の URL アドレスが表示されます。
以上がリクエスト IP の最後のセグメントに基づいてトラフィックを迂回するように Nginx を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。