4

ここではNginx1.2.4Webサーバーを実行していますが、ddos攻撃を防ぐためにホスティング業者のプロキシの背後にいます。このプロキシの背後にあることの欠点は、追加のヘッダーからREALIP情報を取得する必要があることです。$_SERVER[HTTP_X_REAL_IP]PHPでは、たとえば実行することでうまく機能します。

ホスティング業者のこのプロキシの背後にいる前に、これを行うことで特定のIPをブロックする非常に効果的な方法がinclude /etc/nginx/block.confありました。そこでIPを許可/拒否します。

しかし、プロキシが原因で、Nginxはすべてのトラフィックが1つのIPから送信されていることを確認します。

Nginxをで構成し--with-http_realip_moduleたので、実際のIPを人々から取得できるようになります。

私のnginx.confに追加しました:

real_ip_header X-Forwarded-For;
include blockips.conf;

私も試しました:

real_ip_header X-Real-IP;
include blockips.conf;

どちらの場合も、blockips.confにリストされているIPはブロックされていません。また、ログファイルには実際のIPは表示されませんが、プロキシIPのみが表示されます。

私は何が間違っているのですか?

4

2 に答える 2

2

私はそれを解決しました。

追加する必要がありました:

set_real_ip_from 0.0.0.0;

IP0.0.0.0がプロキシである場合

于 2012-10-31T14:51:58.460 に答える
0

注意:設定は、実際のIPの設定set_real_ip_from 0.0.0.0/0;など、ヘッダーを含むすべての着信要求を許可するため、潜在的なセキュリティの問題になる可能性があります。X-Forwarded-For特別な場合にはこれが役立つかもしれませんが、nginxでIPブロッキングを回避する方法をほぼ確実に作成します。コメントで明確にしてくれた@phylaeに感謝します。

于 2017-04-19T11:35:36.020 に答える