リクエスト IP の最後のセグメントに基づいてトラフィックを迂回するように Nginx を構成する方法

WBOY
リリース: 2023-05-18 10:10:34
転載
1195 人が閲覧しました

主に 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 サイトの他の関連記事を参照してください。

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