-3

中国、ルーマニアなどの国をブロックしたい Web アプリケーションがあります。また、ホットスポット シールド、hidemyass、サイバーゴーストなどの多数の VPN もブロックしたいと考えています。約 5,500 の CIDR 形式の IP アドレスの大きなリストがあり、合計で約 3 億 4,000 万の IP アドレスがあります。これは膨大な数であり、おそらく効率的ではないことを認識しています。私のサイトでは、月間約 2,000 万ページ ビューを取得しています。

とにかく、私が今やっていること:私はnginxを持っていて、サーバーディレクティブに約80kbの大きなテキストファイルを単に含めています。それは実際に機能しており、パフォーマンスの低下に気付いていません。これを行うためのより効率的な方法があるかどうかを知りたいです。

望まないこと: 特定の国からの訪問のみを受け入れる。何百もの国が私のウェブサイトを訪れているので、これは現実的ではありません.

ありがとう!

4

3 に答える 3

4

あなたの質問からは、使用している Nginx 構成ディレクティブが明確ではありません。とにかく、私の知る限り、Nginxでそのようなことを行う最も効果的な方法はgeoモジュールincludeです-IPブロック/範囲を含む大きなテキストファイルが必要になりますgeoが、内部的にNginxはこのテーブルを介して非常に高速に検索します.

于 2012-08-02T09:28:36.943 に答える
1

リストがすでに最適化されており(該当する場合はソートおよび範囲マージ)、nginxの最も効率的な方法(他の回答のgeoモジュールなど)を使用している場合、さらに高速化するためにできる唯一のことファイアウォールエントリ(iptable ect ...)を作成します。これは、さらに低いレベル、通常はカーネルで接続を確立する必要があるかどうかを計算し、チェーンのリソースを使用する前に物事を停止します。別の言い方をすれば、nginx は接続を処理し、そのリソースを使用して適切な国からのものかどうかを確認する必要さえありません。

于 2012-08-02T09:28:48.530 に答える
0

もし私があなたなら、Peer のブロック 100 のリストを使用します。常に更新されます。また、サイトがブロックされている場合でも、一時的なアクセスが必要な場合は、それも許可されます.

于 2013-11-21T05:51:18.553 に答える