www.example.com
のようなURLを持つCDNからすべての静的コンテンツ(たとえばhttp.//www.example.com/image.jpg
)を提供するhttp://static.example.com/image.jpg
サイトがあります
Apache 2 .htaccessルールは、空でないnon-example.com
紹介を禁止します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://example.cloudfront.net [NC]
RewriteRule \.(jpeg|jpg|gif|bmp|png|mp3)$ - [NC,F,L]
</IfModule>
私はまだ、ある種の「ニュースラウンドアップ」機能とwww.example.com/image.jpg
(static.example.comではなく)へのホットリンクを使用する非常に人気のあるWebサイトから大量のトラフィックを受信しています。しかし、URLはどこにも公開されていません。
実際、非常に多くの403を処理すると、サーバーがダウンします。
この種のホットリンクトラフィックをブロックするにはどうすればよいですか、少なくとも、Apache2に到達して障害を起こす前にCDNにリダイレクトするにはどうすればよいですか?
メインサーバーのリクエストに到達せずにwww> cdnを転送する方法はありません。なぜなら、彼らはあなたにリンクしているからです。
私のアドバイスは301リダイレクトではなく、単に404をフラットにするのではなく、そうすることでホットリンクが停止することを願っています。
これにはサーバー上のトラフィックがいくらかありますが、あまり多くはないはずであり、問題があればホスティングをアップグレードすることを考慮する必要があります。
私のドリルダウンアドバイス
別のオプションは、CDNでrobots.txtを使用できることですが、ここでも、画像でrel = nofollowを使用することは不可能であり、SEOを少しだけ助けるので、最近のホットリンクは軽視されるべきではありません。個人的にトラフィック/リンクを評価し、サーバーをアップグレードします。しかし、それ以外の...存在しないものにリンクしている場合は、古き良き404を提供します。すぐに停止します。
サブドメインに画像がない限り、Webサーバーに到達する前にトラフィックを分離する方法はありません。
役立つ可能性のあるパフォーマンスのヒントの1つは、同じサーバーでnginxとApacheの両方を使用することです。 Apacheを非標準ポートで実行します。 nginxをポート80で実行し、Apacheへのプロキシ要求をリバースさせます。イメージの書き換えルールは、nginxサーバーに配置できます。 nginxはApacheよりも高速で軽量であり、これらの単純なタイプのリクエストをより多く処理できるため、この設定を選択できます。これを実装するためのガイドを次に示します。 http://tumblr.intranation.com/post/766288369/using-nginx-reverse-proxy