Come parallelizzare i download tra i nomi host

click fraud protection

Alcuni strumenti di test della velocità della larghezza di banda possono consigliare ai siti di parallelizzare i download download nomi host per servire efficacemente i contenuti web ai browser web. Questa raccomandazione di solito si verifica sui siti che utilizzano il protocollo HTTP/1.1 e si verifica quando i browser Web limitano il numero di connessioni simultanee effettuate a un dominio.

Siti web che ne hanno molti HTTP richieste di contenuto statico (come immagini, CSS file e JavaScript) riscontrano un avviso di parallelizzazione dei download tra i nomi host. Per aggirare questa limitazione, configura la condivisione del dominio o utilizza una rete di distribuzione dei contenuti (CDN).

Il protocollo HTTP/2 è diventato lo standard principale, rendendo obsoleta la necessità di download paralleli. La maggior parte degli host web ora utilizza HTTP/2 per impostazione predefinita e rende disponibile un CDN gratuito di qualche tipo. Poiché HTTP/2 è ora la preferenza di Google, valuta la possibilità di aggiornare il tuo sito e l'hosting su HTTPS.

instagram viewer

Perché parallelizzare i download tra i nomi host?

I browser Web possono aprire solo un numero limitato di connessioni simultanee per nome host per i siti Web che utilizzano il protocollo HTTP/1.1. Questo limite può arrivare fino a sei connessioni.

Quando è necessario scaricare più risorse, le risorse aggiuntive devono attendere in una coda di backlog finché non è disponibile una connessione. Le risorse nella coda sono bloccate e la riduzione di questo tempo di blocco si traduce in tempi di caricamento della pagina più rapidi.

Ad esempio, se una pagina Web ha 12 immagini e il numero di connessioni consentite dal browser Web è sei, allora sei immagini devono attendere nel backlog. Le immagini nel backlog rimangono lì fino al termine del download delle prime sei immagini.

Se un'immagine come un'icona o un logo viene utilizzata più volte, usa uno Sprite CSS per queste immagini ripetute per ridurre le richieste di risorse.

Che cos'è l'avviso di parallelizzazione dei download tra i nomi host?

L'avviso di parallelizzazione dei download tra i nomi host è una regola utilizzata in alcuni controlli delle prestazioni dei siti Web. L'avviso indica che quel browser Web non è riuscito ad aprire il numero di connessioni necessarie per scaricare tutte le risorse del sito Web contemporaneamente.

Per i siti Web che utilizzano il protocollo HTTP/1.1, il modo per aggirare questa esigenza di connessioni più aperte è quello di minimizza le richieste HTTP, configura una rete CDN o implementa la condivisione del dominio.

Per i siti Web che utilizzano il protocollo HTTP/2, più risorse possono essere caricate in parallelo su un'unica connessione; questo si chiama multiplexing. Il multiplexing rende superfluo lo sharding del dominio con HTTP/2. Circa il 77% dei browser Web supporta HTTP/2 e non dovrebbe riscontrare alcun problema con la parallelizzazione dei download.

Se il tuo provider di web hosting supporta HTTP/2, puoi ignorare l'avviso di parallelizzazione dei download tra i nomi host. Con HTTP/2, più risorse possono essere scaricate in parallelo su una connessione.

Che cos'è lo sharding del dominio?

Lo sharding del dominio è un metodo di ottimizzazione delle prestazioni per le connessioni HTTP/1.1 e viene utilizzato su siti Web con un grande volume di richieste HTTP. Nella condivisione del dominio, le risorse del contenuto Web sono distribuite tra diversi sottodomini. Quando le risorse vengono distribuite in questo modo, aumenta il numero di richieste simultanee che possono essere elaborate.

Nella condivisione del dominio, il contenuto viene caricato su sottodomini privi di cookie. Gli utenti non interagiscono con contenuti statici come immagini, JavaScript e file CSS, quindi questo contenuto non deve essere allegato ai cookie.

Quando i sottodomini non servono i cookie, la dimensione delle richieste effettuate per una pagina e la latenza della richiesta diminuiscono e le pagine web si caricano più velocemente. Esempi di contenuti che traggono vantaggio dalla condivisione del dominio includono pagine con contenuto che viene raramente memorizzato nella cache, come una pagina di miniature o un archivio di immagini.

In Drupal, i moduli aggiungono file CSS e JavaScript che possono rallentare le prestazioni. Vai a Configurazione del sito > Prestazione e ottimizzare CSS e JavaScript.

Per sfruttare i vantaggi della condivisione del dominio su connessioni HTTP/1.1, segui questi suggerimenti:

  • Servi le risorse dagli stessi sottodomini per memorizzare in modo efficiente i file nella cache.
  • Distribuisci le risorse in modo uniforme tra i sottodomini.
  • Acquista certificati SSL per i sottodomini.

Nelle connessioni HTTP/2, la condivisione del dominio riduce le prestazioni perché sono presenti ulteriori ricerche DNS. Queste ricerche DNS aumentano il tempo di risoluzione e non memorizzano i file nella cache. La condivisione del dominio aggiunge anche tempo a ogni nuova connessione. Questi sono altri svantaggi dello sharding del dominio su connessioni HTTP/2:

  • La distribuzione di risorse caricate da CSS è difficile da distribuire tra host condivisi.
  • Maggiore carico sul server dovuto all'aumento del numero di connessioni simultanee.
  • Lo spostamento di contenuto statico in un sottodominio può interrompere il codice.
  • Il browser Web potrebbe non consentire l'accesso a un nome host diverso.
  • I router potrebbero non essere in grado di classificare un numero elevato di richieste condivise o potrebbero vedere le richieste come attacchi di negazione del servizio.

Come parallelizzare i download tra i nomi host

Quando ricevi l'avviso di parallelizzazione dei download tra i nomi host, dovrai aumentare la parallelizzazione dei download distribuendo le richieste tra più nomi host. Per distribuire le richieste, creare sottodomini per i diversi tipi di risorse web utilizzate nel sito, quindi specificare il dominio radice come unico dominio che utilizza i cookie. I sottodomini non utilizzano i cookie.

Questi sottodomini aggiungono nuove fonti di connessioni che il browser può stabilire e consentono di scaricare più risorse contemporaneamente. Quando le risorse sono suddivise tra sottodomini, il browser Web impiega meno tempo a bloccare i contenuti Web e le pagine Web si caricano più velocemente.

Per i siti Web che utilizzano HTTP/2 e HTTP/1.1, il modo più semplice per parallelizzare i download tra nomi host è utilizzare più sottodomini tramite una CDN. Per i siti Web che utilizzano HTTP/1.1 e WordPress, imposta i sottodomini e modifica il file functions.php di WordPress.

Imposta sottodomini

Per distribuire le risorse tra i sottodomini, crea almeno uno e fino a quattro sottodomini; si consiglia uno o due sottodomini. Il modo più comune per creare sottodomini è utilizzare cPanel, offerto dalla maggior parte dei servizi di web hosting.

Esempi di sottodomini sono:

  • media1.miodominio.com
  • media2.miodominio.com
  • media3.miodominio.com
  • media4.miodominio.com

Inoltre, i sottodomini e i nomi host devono avere la stessa struttura e lo stesso percorso. Ad esempio, se il percorso dell'immagine sull'host è www.mydomain.com/wp-content/uploads/, il percorso dell'immagine sui sottodomini deve corrispondere, ad esempio, a media1.mydomain.com/wp-content/uploads/.

Configurare un CDN per parallelizzare i download

Dopo aver impostato il CDN e aver creato i sottodomini, puntare ogni sottodominio alla cartella che contiene il contenuto statico. In questo modo, il contenuto viene caricato sul sottodominio anziché sul dominio principale.

Per puntare a un sottodominio, utilizza un editor di zona DNS in cPanel per creare un nuovo record CNAME per ogni sottodominio. Nel campo Nome del record, inserisci il sottodominio, ad esempio media.miodominio.com. Nel campo CNAME, inserisci il dominio principale, ad esempio www.miodominio.com.

Dopo che i record CNAME sono stati creati e propagati dal tuo host web, aggiungi i record CNAME alle impostazioni della zona CDN.

Modifica il file di configurazione del sito Web in WordPress per parallelizzare i download

Dopo aver impostato i sottodomini, aggiungi questo codice al file functions.php del tema WordPress utilizzato per il tuo sito web. Sostituisci media1.miodominio.com e media2.miodominio.com con i tuoi sottodomini effettivi.

function parallelize_hostnames($url, $id) {
$hostname = par_get_hostname($url); //chiama una funzione supplementare
$url = str_replace (parse_url (get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
restituisce $url;
}
function par_get_hostname($name) {
$sottodomini = array('media1.miodominio.com','media2.miodominio.com'); //aggiungi qui i tuoi sottodomini, quanti ne vuoi.
$host = abs (crc32(basename($name)) % count($sottodomini));
$nomehost = $sottodomini[$host];
return $nomehost;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Se utilizzi Jetpack con WordPress, abilita il servizio Site Accelerator per inserire le tue immagini su un CDN gestito da WordPress.

instagram story viewer