ホームページ  >  記事  >  運用・保守  >  $remote_addr に基づいて nginx フロントエンド ディストリビューションを実装する方法

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

王林
王林転載
2023-05-12 22:01:121473ブラウズ

要件は次のとおりです:

ドメイン名の下に複数のサーバーがあります。現在、特定の地域の 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 までご連絡ください。