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

眺める: 17771|答える: 1

[ウェブ] nginxはユーザーの実際のIPアドレスを取得します

[リンクをコピー]
掲載地 2018/05/19 11:38:55 | | | |
私たちのインターフェースの中にはユーザー情報の変更が関わるものもあり、これらのインターフェースはアクセス側が調整できるだけなので、nginxにはIPホワイトリストがあります。

アクセス側の退出IPが搭載されています。

こちらが私たちのnginxアクセスからのログです。



nginxは私たちの$remote_addrを本当のIPとして使いますが、実際には$http_X_Forwarded_Forがユーザーの本当のIPであり、$remote_addrはf5(ユーザー -->f5 ---> nginx)のプライベートネットワークアドレスに過ぎないため、nginxは間違った名前を使い、インターフェースを調整するユーザーは常に403になります。

解決:

httpモジュールプラスにおいて


set_real_ip_from 10.10.10.122; nginxにそこからRealIPの値を取得するように伝えてください
real_ip_header X-Real-IP; RealIPの値を保存する変数の名前

缶!

ここでnginxレポートの開始を、以下を付け加えます:

nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26




そこでrealipモジュールを追加し、nginxを再コンパイルします


1、cd /usr/local/nginx-1.6.3
2、./configure --prefix = /usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
3、make & make インストール

ヒント:
1. set_real_ip_from は信頼できる事前プロキシから取得された実際のユーザーIPを指します

2. real_ip_header は、受信メッセージのHTTP部分が取得される前回のプロキシ送信のユーザーIPを指します

3. real_ip_recursive ユーザーIPを取得するまで再帰的に除外するかどうか(デフォルトはオフ)

まず、httpヘッダー名を指定します。デフォルトreal_ip_header X-Real-IPです。

(1) IPが1つある場合、送信者のIPがset_real_ip_fromで指定された信頼IPリストに含まれているかどうかを確認します。 信頼されていれば、このX-Real-IPのIP値は前のエージェントから伝えられたユーザーの実際のIP値と考え、この値を自身の$remote_addr変数に割り当てます。 信頼できなければ処理されず、$remote_addrは送信者のIPアドレスのままです。

(2) 例えばX-Real-Ipに複数のIP値がある場合、前のプロキシは次のように設定されます:proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

得られるのはIPの連続なので、real_ip_recursiveの価値が今は非常に重要です。 nginxはset_real_ip_fromトラストリスト内のIPを右から左に比較します。 real_ip_recursiveがずれている場合、最も右端のIPが信頼できるIPであると判明した場合、次のIP(右から2番目の)がユーザーの本当のIPであると考えられます。 real_ip_recursiveがオンなら、信頼できないIPを見つけるまで右から左へ比較されます。 その後、IP値を$remote_addrにもコピーします。

リソース:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html





先の:ディスカズのサイトマップは自動的に生成されます
次に:Alibaba Cloudの負荷分散を使ってウェブサイトへのIPアクセスをブロックしましょう
掲載地 2018/06/18 14:57:50 |
見て、nginxは本物のIPを持っている
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com