Quando e quando non usare un CDN


13

Sto lavorando ad un'applicazione web che carica sullo schermo un paio di piccole immagini gif. Sto usando un percorso relativo, il che significa che sono caricati dallo stesso server web che serve la pagina php. L'operazione è istantanea e mi trovo in un continente diverso rispetto al web server.

Ho appena testato una rete CDN per questo (Cloudfront), pensando che spostare i file statici più vicini all'utente sia un'ottima idea. Tuttavia, tutti questi file ora impiegano circa mezzo secondo per essere visualizzati sullo schermo. Ora devo usare un percorso assoluto, ovviamente (https://xyzvf.cloufront.net/images/)

Perché? Il percorso assoluto è un problema? Sto riducendo le richieste HTTP al mio server, il che è positivo, ma questo ritardo è fastidioso. CDN non è adatto a questo?


4
Dipende praticamente da dove si trova la CDN. Se hai molte piccole immagini, combinarle in uno sprite è un'opzione? Ciò significherebbe una sola richiesta per caricare tutte le immagini.

Hanno queste posizioni: michaelgaigg.com/blog/images/amazon-cloudfront.jpg Sono in Europa e caricare le immagini dal mio server web negli Stati Uniti è più veloce del caricamento dalla Germania o da qualunque altra località dell'Europa mi serva. O forse il problema non è il tempo di caricamento, ma qualcos'altro? L'uso di uno sprite è un'ottima idea grazie.

È inoltre possibile utilizzare un URL senza protocollo con il nome host, ad esempio "//xyzf.cloudfront.net/images". Ciò consente di sfruttare le cache ISP e proxy aziendali per la memorizzazione nella cache delle versioni non SSL delle immagini. Questo può avere un enorme vantaggio sia per l'esperienza dei visitatori che per il carico del server / della larghezza di banda. I visitatori del nostro sito provengono quasi tutti da istituti finanziari con sede negli Stati Uniti e rileviamo circa l'85% delle visite da dietro una qualche forma di proxy di memorizzazione nella cache. YMMV, quindi prova il tuo sito e il traffico ovviamente.
rmalayter,

Risposte:


6

Un problema potrebbe essere il DNS o keep-alive, cioè, il browser ha già l'indirizzo IP per il tuo server e ha una connessione aperta, mentre deve risolvere il nome del server della CDN e quindi aprire una nuova connessione lì, e una di quelle o entrambi costituiscono il ritardo che stai vedendo.

Spriting, sebbene sia ancora una buona idea, non aiuterebbe questi problemi. In effetti, non viene in mente alcuna soluzione. L'unico conforto è che il ritardo di mezzo secondo non sarebbe molto più lungo se avessi un migliaio di immagini (e file CSS e file JS e qualsiasi altro file statico di cui hai bisogno) e non metterebbe più stress sul tuo server di origine se un Altre migliaia di utenti lo hanno colpito.


Questo suona un campanello. Dovrei menzionare che la prima chiamata al server CDN viene effettuata quando è necessaria la prima immagine, come nel mezzo della pagina.

Ah, allora potresti ottenere prestazioni migliori (percepite) se hai fatto un riferimento, qualsiasi riferimento, alla CDN molto presto nella pagina. Il modo migliore potrebbe essere quello di mettere i tuoi file CSS sulla CDN e inserire i linktag nella headsezione, in modo che il processo di connessione inizi immediatamente.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.