Quand et quand ne pas utiliser un CDN


13

Je travaille sur une application web qui charge quelques petites images gif sur l'écran. J'utilise un chemin relatif, ce qui signifie qu'ils sont chargés à partir du même serveur Web qui dessert la page php. L'opération est instantanée et je suis sur un autre continent que le serveur web.

Je viens de tester un réseau CDN pour cela (Cloudfront), pensant que rapprocher des fichiers statiques de l'utilisateur est une excellente idée. Cependant, tous ces fichiers prennent maintenant environ une demi-seconde pour être affichés à l'écran. Je dois maintenant utiliser un chemin absolu, bien sûr (https://xyzvf.cloufront.net/images/)

Pourquoi donc? Le chemin absolu est-il un problème? Je réduis les requêtes HTTP sur mon propre serveur, ce qui est une bonne chose, mais ce délai est ennuyeux. Le CDN n'est-il pas adapté à cela?


4
Cela dépend à peu près de l'emplacement du CDN. Si vous avez beaucoup de petites images, les combiner en un sprite est-il une option? Cela signifierait qu'une seule demande pour charger toutes les images.

Ils ont ces emplacements: michaelgaigg.com/blog/images/amazon-cloudfront.jpg Je suis en Europe, et le chargement des images à partir de mon serveur Web aux États-Unis est plus rapide que le chargement à partir de l'Allemagne ou de n'importe quel emplacement en Europe d'Amazon. Ou peut-être que le temps de chargement n'est pas le problème, mais autre chose? L'utilisation d'un sprite est une excellente idée merci.

Vous pouvez également utiliser une URL sans protocole avec le nom d'hôte, comme "//xyzf.cloudfront.net/images". Cela vous permet de tirer parti des caches de FAI et de proxy d'entreprise pour mettre en cache les versions non SSL des images. Cela peut avoir un avantage considérable pour votre expérience de visiteur et la charge du serveur / de la bande passante. Les visiteurs de notre site proviennent presque tous d'institutions financières basées aux États-Unis, et nous détectons environ 85% des visites derrière une forme de proxy de mise en cache. YMMV, alors testez votre propre site et votre trafic bien sûr.
rmalayter

Réponses:


6

Un problème peut être DNS ou keep-alive- c'est-à-dire que le navigateur a déjà l'adresse IP de votre serveur et qu'une connexion lui est ouverte, alors qu'il doit résoudre le nom du serveur du CDN puis y ouvrir une nouvelle connexion, et l'une de celles-ci ou les deux constituent le retard que vous voyez.

Spriting, bien que toujours une bonne idée, n'aiderait pas ces problèmes. En effet, aucune solution ne vient à l'esprit. Le seul confort est que le délai d'une demi-seconde ne serait pas beaucoup plus long si vous aviez mille images (et les fichiers CSS et JS et tout autre fichier statique dont vous aviez besoin) et ne mettrait pas plus de stress sur votre serveur d'origine si un mille autres utilisateurs l'ont frappé.


Cela sonne une cloche. Je dois mentionner que le premier appel au serveur CDN est effectué lorsque la première image est nécessaire, comme au milieu de la page.

Ah, alors vous pouvez obtenir de meilleures performances (perçues) si vous faites une référence, n'importe quelle référence, au CDN très tôt dans la page. La meilleure façon pourrait être de mettre vos fichiers CSS sur le CDN et de mettre les linkbalises dans la headsection, afin que le processus de connexion démarre immédiatement.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.