web-dev-qa-db-ja.com

オフサイトコンテンツのホットリンクを防止しますか?

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にリダイレクトするにはどうすればよいですか?

3
blau

メインサーバーのリクエストに到達せずにwww> cdnを転送する方法はありません。なぜなら、彼らはあなたにリンクしているからです。

私のアドバイスは301リダイレクトではなく、単に404をフラットにするのではなく、そうすることでホットリンクが停止することを願っています。

これにはサーバー上のトラフィックがいくらかありますが、あまり多くはないはずであり、問​​題があればホスティングをアップグレードすることを考慮する必要があります。

私のドリルダウンアドバイス

  • ホスティングのアップグレードを検討してください(IMGホットリンクは実際にSEOに役立ちます)ロードバランサーは、403、404、または301を実行することで、ここでうまく機能します。
  • ホットリンクが不要な場合は404の使用を検討してください。

別のオプションは、CDNでrobots.txtを使用できることですが、ここでも、画像でrel = nofollowを使用することは不可能であり、SEOを少しだけ助けるので、最近のホットリンクは軽視されるべきではありません。個人的にトラフィック/リンクを評価し、サーバーをアップグレードします。しかし、それ以外の...存在しないものにリンクしている場合は、古き良き404を提供します。すぐに停止します。

2
Simon Hayter

サブドメインに画像がない限り、Webサーバーに到達する前にトラフィックを分離する方法はありません。

役立つ可能性のあるパフォーマンスのヒントの1つは、同じサーバーでnginxとApacheの両方を使用することです。 Apacheを非標準ポートで実行します。 nginxをポート80で実行し、Apacheへのプロキシ要求をリバースさせます。イメージの書き換えルールは、nginxサーバーに配置できます。 nginxはApacheよりも高速で軽量であり、これらの単純なタイプのリクエストをより多く処理できるため、この設定を選択できます。これを実装するためのガイドを次に示します。 http://tumblr.intranation.com/post/766288369/using-nginx-reverse-proxy

1