web-dev-qa-db-fra.com

empêcher la mise en lien du contenu hors site?

J'ai un site www.example.com où je sers tout le contenu statique (par exemple, http.//www.example.com/image.jpg) sur un CDN avec des URL telles que http://static.example.com/image.jpg

Une règle Apache 2 .htaccess interdit les renvois non vides, 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>

Je reçois toujours d'énormes quantités de trafic d'un site Web très populaire qui utilise une sorte de fonctionnalité de "synthèse des informations" et des liens hypertexte vers www.example.com/image.jpg (au lieu de static.example.com): cette ressource existe (pour des raisons de tirage Origin), mais l'URL n'est publiée nulle part.

En fait, servir autant de 403 entraîne l’abaissement de mon serveur.

Comment ce type de trafic de liens hypertextes peut-il être bloqué ou au moins, comment peut-il être redirigé vers le CDN avant qu'il n'atteigne Apache2 et ne le paralyse pas?

3
blau

Il n’existe aucun moyen de transférer le www> cdn sans accéder à la demande sur le serveur principal, car ils vous lient.

Mon conseil est de ne pas rediriger 301 mais plutôt de simplement en sortir 404, espérons-le, ils arrêteront ainsi de vous lier à chaud.

Bien que cela génère du trafic sur votre serveur, il ne devrait pas être trop et vous devriez envisager la mise à niveau de votre hébergement en cas de problème.

Mon conseil d'exploration

  • Pensez à mettre à niveau votre hébergement (IMG Hot -link aide réellement votre référencement) Un équilibreur de charge pourrait bien vous servir ici en utilisant les 403, 404 ou 301.
  • Pensez à utiliser un 404 si vous ne voulez pas de lien direct.

Une autre option est que vous pouvez utiliser le fichier robots.txt sur votre CDN, mais encore une fois, il ne faut pas mépriser les liens chauds de nos jours, car j’ai déclaré qu’il était impossible d’utiliser rel = nofollow sur les images et que cela optimisait un peu votre référencement. Personnellement, j'appericate le trafic/liens et mettre à niveau mon serveur. Mais à part ça ... leur servir un bon vieux 404 s'ils lient à quelque chose qui n'existe pas - ils vont bientôt s'arrêter.

2
Simon Hayter

Sauf si vous avez vos images sur un sous-domaine, il n'y a aucun moyen de séparer le trafic avant qu'il n'atteigne votre serveur Web.

Un conseil de performance qui pourrait vous aider consiste à utiliser nginx et Apache sur le même serveur. Faites fonctionner Apache sur un port non standard. Faites en sorte que nginx soit exécuté sur le port 80 et inversez les demandes de proxy adressées à Apache. La règle de réécriture des images peut être placée sur le serveur nginx. Vous pouvez choisir cette configuration car nginx est plus rapide et plus léger qu’Apache et peut gérer un grand nombre de ces types simples de demandes. Voici un guide pour implémenter ceci: http://tumblr.intranation.com/post/766288369/using-nginx-reverse-proxy

1