tencent cloud

Cloud Load Balancer

動向とお知らせ
製品アップデート情報
製品に関するお知らせ
製品の説明
製品概要
製品の優位性
ユースケース
技術原理
Product Comparison
使用上の制約
Service Regions and Service Providers
購入ガイド
課金概要
課金項目
購入方法
支払い延滞の説明
製品属性の選択
クイックスタート
ドメイン名型CLBクイックスタート
CLBクイックスタート
IPv6 CLBクイックスタート
CentOSにおけるNginxのデプロイ
CentOSにおけるJava Webのデプロイ
操作ガイド
CLBインスタンス
CLBリスナー
バックエンドサーバー
ヘルスチェック
証明書管理
ログ管理
監視アラート
Cloud Access Management
従来型CLB
プラクティスチュートリアル
証明書をCLBに配置(双方向認証)
CLBのGzip有効化設定およびチェック方法の説明
HTTPS転送設定スタートガイド
クライアントリアルIPの取得方法
ロードバランサーのモニタリングアラート設定のベストプラクティス
マルチアベイラビリティーゾーンの高可用性設定の説明
バランシングアルゴリズムの選択と重みの設定の例
CLBのリスニングドメイン名に対してWebセキュリティ保護を実行するようにWAFを設定する
メンテナンスガイド
クライアントのtimewaitが多すぎる場合の対処方法
CLBのHTTPSサービスパフォーマンステスト
ストレステストに関するよくあるご質問
CLB証明書の操作権限に関するご質問
障害処理
UDPヘルスチェックの異常
API リファレンス
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
よくあるご質問
課金関連
CLB設定関連
ヘルスチェック異常調査
HTTPS関連
WS/WSSプロトコルサポート関連
HTTP/2プロトコルサポート関連
連絡先
用語集

IPv4 CLBのシーンでのクライアントリアルIPの取得

PDF
Focus Mode
Font Size
Last updated: 2024-01-04 17:48:23

CLBでのクライアントリアルIPの取得に関する説明

CLBのレイヤー4(TCP/UDP/TCP SSL)およびレイヤー7(HTTP/HTTPS)サービスでは、どちらもバックエンドCVM上でクライアントのリアルIPを直接取得することができ、追加設定を行う必要はありません。
レイヤー4CLBでは、バックエンドCVM上で取得するソースIPがクライアントIPです。
レイヤー7CLBでは、CLBとバックエンドサービス間の短い接続を使用する場合、バックエンドCVMで取得したソースIPがクライアントIPとなります。CLBとバックエンドサービス間の長い接続を使用する場合、CLBはソースIPをパススルーしなくなりますので、X-Forwarded-Forフィールドまたはremote_addrフィールドでクライアントIPを直接取得できます。レイヤー7CLBのアクセスログについては、アクセスログのCLSへの保存設定をご参照ください。
説明:
レイヤー4CLBでは、バックエンドCVM上で追加設定を行うことなくクライアントIPを取得できます。
SNATを行ったその他のレイヤー7ロードバランシングサービスでは、バックエンドCVM上での設定を行ってからX-Forwarded-Forメソッドを使用してクライアントのリアルIPを取得する必要があります。
次に、一般的なアプリケーションサーバー設定スキームについてご説明します。

IIS 6設定スキーム

1. F5XForwardedForプラグインモジュールをダウンロードしてインストールし、ご自身のサーバーのOSバージョンに応じてx86\\Releaseまたはx64\\Releaseディレクトリ下のF5XForwardedFor.dllをあるディレクトリにコピーします。ここでは仮にC:\\ISAPIFiltersとします。同時にIISプロセスのこのディレクトリに対する読み取り権限を確保します。
2. IISマネージャーを開き、現在開いているウェブサイトを見つけ、このウェブサイト上で右クリックしてプロパティを選択し、プロパティページを開きます。
3. プロパティページでISAPIフィルターに切り替え、追加をクリックすると、追加ウィンドウがポップアップします。
4. 追加ウィンドウの「フィルター名」に「F5XForwardedFor」、「実行可能ファイル」にF5XForwardedFor.dllの完全なパスをそれぞれ入力し、OKをクリックします。
5. IISサーバーを再起動し、設定が有効になるのを待ちます。

IIS 7設定スキーム

1. F5XForwardedForプラグインモジュールをダウンロードしてインストールし、ご自身のサーバーのOSバージョンに応じてx86\\Releaseまたはx64\\Releaseディレクトリ下のF5XFFHttpModule.dllF5XFFHttpModule.iniをあるディレクトリにコピーします。ここでは仮にC:\\x_forwarded_forとし、IISプロセスのこのディレクトリに対する読み取り権限を確保します。
2. IISサーバーを選択し、モジュール機能をダブルクリックします。

3. ネイティブモジュールの設定をクリックします。

4. ポップアップボックスで、登録をクリックします。

5. 下図のように、ダウンロードしたDLLファイルを追加します。

6. 追加が完了したら、チェックを入れてOKをクリックします。

7. 「ISAPIおよびCGIの制限」に上記の2つのDLLファイルを追加し、制限を許可に設定します。

8. IISサーバーを再起動し、設定が有効になるのを待ちます。

Apache設定スキーム

1. Apacheのサードパーティモジュール「mod_rpaf」をインストールします。
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
2. Apacheの設定/etc/httpd/conf/httpd.confを変更し、末尾に次を追加します。
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips IPアドレス(このIPアドレスは最初はCLBが提供するパブリックIPではありません。具体的なIPについてはApacheログで確認できます。通常は2つあり、どちらも入力が必要です)
RPAFheader X-Forwarded-For
3. 追加が完了したら、Apacheを再起動します。
/usr/sbin/apachectl restart

Nginx設定スキーム

1. Nginxをサーバーにする場合、クライアントのリアルIPを取得するにはhttp_realip_moduleを使用します。デフォルトでインストールされているNginxにはこのモジュールがインストールされていないため、Nginxを再コンパイルして--with-http_realip_moduleを追加する必要があります。
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.17.0.tar.gz
tar zxvf nginx-1.17.0.tar.gz
cd nginx-1.17.0
./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
make
make install
2. nginx.confファイルを変更します。
vi /etc/nginx/nginx.conf
設定フィールドと情報を変更します。
説明:
このうちxx.xx.xx.xxは実際のIPアドレスに変更する必要があります。このIPアドレスはCLBが提供するパブリックIPではありません。具体的なIPアドレスはNginxログで確認できます。複数のIPアドレスがある場合は、すべて入力が必要です。
fastcgi connect_timeout 300;
fastcgi send_timeout 300;
fastcgi read_timeout 300;
fastcgi buffer_size 64k;
fastcgi buffers 4 64k;
fastcgi busy_buffers_size 128k;
fastcgi temp_file_write_size 128k;

# 設定フィールドと情報を変更します
set_real_ip_from xx.xx.xx.xx;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
3. Nginxを再起動します。
service nginx restart
4. Nginxのアクセスログを確認し、クライアントのリアルIPを取得できます。
cat /path/server/nginx/logs/access.log


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback