要件は次のとおりです:
ドメイン名の下に複数のサーバーがあります。現在、特定の地域の 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 サイトの他の関連記事を参照してください。