この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 15060|答える: 0

[ウェブ] フロントエンドのnginxサーバーとバックエンドのnginxサーバーは、元のクライアントのIPアドレスを記録します

[リンクをコピー]
掲載地 2014/11/03 9:53:23 | | |

このモジュールにより、クライアントリクエストヘッダー内のクライアントIPアドレス値(例:X-Real-IPやX-Forwarded-For)を変更できます。

    この機能は、Nginxがレイヤー7の負荷分散プロキシの背後で動作する場合、Nginxサーバーにとって非常に有用です。なぜなら、クライアントリクエストのローカルIP(すなわちクライアントのリクエストアドレス)がレイヤー7プロキシを通過する際にクライアントのIPアドレスヘッダーに追加されるため、バックエンドのNginxがクライアントのIPアドレス値を取得できるからです。 モジュールはデフォルトでインストールされていないので、モジュールを使いたい場合は、インストールコンパイル時に-with-http_realip_moduleオプションを追加する必要があります。

    このモジュールを使用する理由は、バックグラウンドサーバーが元のクライアントのIPアドレスを記録できるからです。

構成例
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


    秩序

   モジュールは2つの命令のみを提供します。

命令名:set_real_ip_from

機能:このコマンドで信頼されるアドレスを指定することは、正確なIPアドレスに置き換えられます。 信頼できるUnixソケットもバージョン0.8.22以降使用可能です。 ここでのIPセットはフロントエンドを指しますンギンクスニス又はイカ知的財産住所。

構文論:set_real_ip_from [アドレス|CIDR|」 ユニクス:「」

デフォルト値:なし

使用環境:http、サーバー、ロケーション

命令名:real_ip_header

関数:このコマンドは、IPアドレスを置き換えるためにどのヘッダーを使うかを設定するために使われます。 X-Forwarded-Forを使用する場合、モジュールはフロントエンドプロキシのIPアドレスをX-Forwarded-Forヘッダーの最後のIPアドレスに置き換えます。

構文法:real_ip_header [X-Real-IP|転送しました]

デフォルト値:real_ip_header X-Real-IP

使用環境:http、サーバー、ロケーション

ユースケース   

    以下の例では、私たちの環境はこうです:2つのNginxサーバーがあり、1つはフロントエンド、もう1つはバックエンドです。フロントエンドのNginxはプロキシとして、バックエンドのNginxはページアクセスの提供に使われます。さらに、以下のIPアドレスを持つクライアントも存在します。

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    クライアントホスト:218.239.201.36

    フロントエンドのNginx構成は以下の通りです:

サーバー {
  80;
  server_name www.xx.com;

所在地 / {
    ルートhtml;
    インデックスindex.html index.htm;
チャーセット UTF-8;
  }

所在地 /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header ホスト$host;
    proxy_redirect
  }

……
}

バックエンドのNginx構成は以下の通りです:

サーバー {
  80;
  server_name localhost;

  所在地 / {
    ルート /var/www/html;
    インデックスindex.html index.htm;
  }

テストへのアクセス

    http://www.xx.com/865 にアクセスする場合、問題なく通常のアクセスが可能です。アクセスログは以下の通りです:

    フロントエンドのNginxからのログ:

218.239.201.36 - - [30/Aug/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

バックエンドのNginxからのログ:

192.168.7.10 - - [2011年8月30日:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

バックエンドのNginxログは元のクライアントのIPアドレスを記録せず、フロントエンドのNginxのIPアドレスを記録しています。

    バックグラウンドのNginxサーバーの設定を以下に変更すると:

サーバー {
  80;
  server_name localhost;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  所在地 / {
    ルートhtml;
    インデックスindex.html index.htm;
  }

    ……
}

次に再度アクセステストを行います:

    フロントエンドのNginxからのログ:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     バックエンドのNginxからのログ:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

今回はバックグラウンドでクライアントのIPアドレスが記録されていることがわかります。







先の:nginxプロキシモード:クライアントの実際のIPアドレスを取得する
次に:ディクズ! X3.1 X3のすべてのバージョンは、クレジットなしで添付ファイルダウンロード許可を回避します。無制限ダウンロードの脆弱性
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com