$remote_addr に基づいて nginx フロントエンド ディストリビューションを実装する方法

王林
リリース: 2023-05-12 22:01:12
転載
1472 人が閲覧しました

要件は次のとおりです:

ドメイン名の下に複数のサーバーがあります。現在、特定の地域の IP ユーザーのみがアクセスできるように、特定の地域をテストしています。特定のサーバーを選択して個別にテストを行い、問題がなければすべて更新し、問題がある場合は影響が小さいため、時間内に問題を見つけて問題を解決します。解決策:

nginx モジュールを使用し、フロントエンドにロードしますバランス型フォワーディング マシンでマッチング ルールを構成します;

nginx 構成仮想ホストにコードを追加しますドメイン名の下の location セクションで

#$remote_addr が IP に一致する場合は、abc_test_server に転送します;

server {
  listen    80;
  server_name abc.com.cn;
  access_log /dev/null;
  error_log /data/logs/error.log;
  
  location / {

  proxy_set_header  host       $host;
  proxy_set_header  x-real-ip    $remote_addr;
  proxy_set_header  x-forwarded-for $proxy_add_x_forwarded_for;
      if ($remote_addr ~ "202.96.134.100") 
       {
           proxy_pass http://abc_test_server;
            break;
        }
  proxy_pass http://abc_server;
  }
}
ログイン後にコピー

負荷分散構成にもセクションを追加する必要があります

#abc_test only
upstream abc_test_server {
  server  192.168.20.10:80;
  
}

#abc.com.cn
upstream abc_server {
  server  192.168.20.11:80;
  server  192.168.20.12:80;
  server  192.168.20.13:80;
}
ログイン後にコピー

設定された IP は、テストのためにバックエンド サーバー 192.168.20.10 に直接配布されます。

以上が$remote_addr に基づいて nginx フロントエンド ディストリビューションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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