web-dev-qa-db-ja.com

1日あたりランダムなjpegへの500,000GETリクエスト(Apache)

だから私は地元の会社の小さなサーバー上の私のApacheログでこれを取得しています:

1.2.3.4 - - [09/Nov/2015:17:00:16 +0000] "GET /wp-content/uploads/2012/08/gold-coins.jpeg HTTP/1.1" 301 342

150,000の一意のIPで1日あたり約500,000回。サーバーがクラッシュしていたため、そのトラフィックを自分のサイトの外部にリダイレクトしました(したがって301)。しかし、それはまだいくらかの帯域幅を使用しています。この状況を改善するための最良の方法は何ですか?

2
user321255

この問題は、画像のホットリンクと呼ばれます。

Nginxは、Nginxからユーザーを保護するためにさまざまな方法で構成できます。ここでそれについて読んでください:

http://www.htpcbeginner.com/image-hotlink-protection-nginx/

http://nginxlibrary.com/hotlink-protection/

http://nodotcom.org/nginx-image-hotlink-rewrite.html

Nginxホットリンク保護の問題

あなたが言っているように、約15万のIPが50万回ヒットします。つまり、それぞれ約3回です。そのことを念頭に置いて、このような静的jpegファイルのブラウザーキャッシュをミックスに追加して、リクエストの66%を回避することもできます。いわゆるクッキーレスドメインから静的ファイルを提供すると、もう少し節約できます。

考慮すべきもう1つのルートは、たとえばFail2Banを使用して、ファイアウォールレベルでIPを禁止することです。そのファイルの最初のダウンロード後にそれぞれを禁止すると、リクエストの66%が節約されます。 Webサーバーに到達しないため、多くのリソースを節約できます。しかし、これはソースでそれを止めません。

リファラーベースのホットリンク保護が理想的です。そのようなリファラーのリストを保持している場合は、ホットリンクを停止するように依頼して、しばらくすると問題が解決することを願っています。

3
JayMcTee

Apacheでは、ホットリンクを非常に簡単に停止できます。

https://wiki.Apache.org/httpd/DisableImageHotLinking

0
natxo asenjo