3 votes

Déplacez les fichiers statiques de EC2 vers S3 (ou cloudfront) sans mettre à jour les liens

En ce moment, j'ai un site entièrement sur une instance EC2, y compris tous les fichiers statiques tels que css, js et images. Je me demande quelle est la meilleure façon de les déplacer. Par exemple, dans mon sur une page html donnée, j'ai cette référence à un fichier .js :

Ce que je veux éviter, c'est de devoir aller mettre à jour ceci (et d'autres) en quelque chose comme :

Je ne m'inquiète pas encore de déplacer les fichiers vers S3, mais plutôt sur la façon de réécrire ces liens. Je pense qu'il doit y avoir une solution à cela.

Pour compléter, j'utilise actuellement un équilibreur de charge devant l'instance EC3 (où j'ai également mon SSL). J'utilise également Route 53 pour le DNS.

Toute information serait utile.

1voto

Rune Kaagaard Points 2044

Vous perdez une grande partie des avantages de déplacer les fichiers statiques vers S3 si vous ne souhaitez pas modifier les liens, car cela signifie que vous devrez toujours exécuter une sorte de proxy inverse pour router correctement les requêtes vers S3 ou votre instance EC2, en fonction de si c'est un fichier statique ou non.

Cela étant dit, il existe de nombreuses recettes pour connecter par exemple nginx en tant que proxy inverse, par exemple https://coderwall.com/p/rlguog/nginx-as-proxy-for-amazon-s3-public-private-files. Vous pourriez alors mettre nginx sur chacune de vos instances EC2 équilibrées, et servir à partir de S3 ou de services locaux en fonction de si le contenu est statique ou non.

0voto

rmalayter Points 3734

Différents modules de réécriture pour des serveurs tels que Apache, nginx, et même IIS peuvent le faire en temps réel, tout comme la plupart des CMS. Mais cela ajoute beaucoup de surcharge à chaque requête.

Pour effectuer le remplacement automatiquement et en toute sécurité, vous avez vraiment besoin d'un analyseur HTML pour n'importe quel langage de script. Les expressions régulières pour ce cas seraient difficiles à réaliser parfaitement en toute sécurité à moins d'utiliser toujours le même espacement et l'ordre des arguments dans les balises et les références CSS. Et vous devez également vous assurer de ne pas avoir de HTML dans les balises ou

 ou </code> incorporées. Encore plus difficile seraient les URL qui font partie de chaînes dans le code JS.</p>

<p>Si les fichiers ne sont pas réellement du HTML, mais du PHP ou autre, vous aurez besoin d'un analyseur complet pour ce langage pour être en sécurité. Ou utilisez une recherche et un remplacement regex avec confirmation manuelle.</p>

<p>Une dernière option serait un CDN avec origine personnalisée en tant que proxy complet. Cloudflare vient à l'esprit. Cloudfront peut également le faire, mais les SSL personnalisés sont très coûteux avec cloudfront.</p></x-turndown>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X