Uso alternativo di Google App Engine per l'ottimizzazione di WordPress

Stavo cercando una soluzione per ottimizzare il mio sito, in un modo molto economico. Spesso una Content Delivery Network è una buona soluzione ma non economica, quindi ho usato Google App Engine come CDN con Ubuntu.


Step 0: Un po 'di teoria

Cose come fogli di stile, immagini e video sono spesso il principale successo di un server web quando viene caricata una pagina web. È stato dimostrato che il caricamento di queste risorse da domini diversi aiuta il browser con il multitasking, poiché non è necessario attendere il caricamento di Asset 1 nel dominio example.com per avviare il download di Asset 2 nello stesso dominio. Ci sono un certo numero di approcci a questo, e in questo tutorial analizzeremo tre di questi.

Il primo approccio

La maggior parte delle persone crea semplicemente sottodomini come "images.dominio.com", "styles.dominio.com" e così via. Le risorse vengono quindi richiamate dai sottodomini, quindi il browser "pensa" che provenga da una posizione diversa, quando in realtà, di solito, hanno sempre come target la stessa struttura.

Questo approccio è utile e c'è una differenza notevole nei tempi di caricamento. Un lato negativo è che stai ancora colpendo il tuo server web, e ora ancora più difficile, dato che stai facendo più connessioni contemporaneamente. Se stai caricando immagini o file di piccole dimensioni, va bene, ma le cose inizieranno a diventare più brutte se proverai a caricare video o file più pesanti; e inoltre, soprattutto per l'hosting a basso costo, non è sempre possibile creare sottodomini.

Il secondo approccio

Questo consiste nell'avere un secondo server web solo per caricare le risorse mentre il tuo server web principale gestisce le altre chiamate. Hai due server web che usano due porte differenti. Il server web principale è il responsabile di tutte le richieste, ma reindirizzerà ogni chiamata di asset al secondo server web. Quello che le persone normalmente fanno qui è usare due diversi tipi di server web. Più comunemente Apache (come il server web principale) e lighttpd come server web secondario.

Il concetto è davvero bello, ma significa anche che ora dovrai mantenere due server web. La seconda (lighttpd) dovrebbe essere davvero una tantum, poiché una volta configurata, servirà solo contenuto statico. Tuttavia, sono due server Web sul tuo server, e se qualcosa va storto, è un po 'difficile da risolvere.

Il terzo approccio

Fondamentalmente consiste nell'ospitare le tue risorse da qualche altra parte, dove non dovrai mantenere o tenere d'occhio le prestazioni, poiché l'attività principale di questo server è quella di pubblicare contenuti statici. Questo paradiso è chiamato "Cloud computing"ed è una" parola d'ordine "al momento, in pratica consiste in una rete di server in luoghi strategici, che chiamiamo luoghi strategici, in quanto i server si trovano vicino a te, beh, non vicino a te, ma dal tuo IP, ti reindirizza al server più vicino, da dove raccoglierai le risorse quando necessario.

Funziona praticamente come bilanciamento del carico, ma in base alla posizione, anziché al numero di connessioni. Si assicura che i bit percorrano la distanza più breve per arrivare a te. In altre parole, se sei in Italia (come me), perché dovresti aspettare i dati per viaggiare dagli Stati Uniti, se c'è un server proprio accanto a te. Ci sono alcune aziende che offrono CDN a un prezzo molto ragionevole, ma oggi parleremo di roba gratis!

Prima di iniziare

Prima di iniziare con questo tutorial, devo chiarire che la forma di CDN che useremo qui, non è veramente CDN, in quanto non offre una scalabilità molto elevata e non è stata sviluppata per l'unico scopo di servire file statici. Ciò significa che non avrà le stesse alte prestazioni di un servizio designato specificamente per questa attività. Per alcuni (come me), non farà una differenza così grande, poiché questo metodo è ancora meglio di niente ed è immensamente più veloce di molti server in circolazione. Anche per la maggior parte delle persone che usano le società di hosting e hanno una larghezza di banda limitata, questo sarà un enorme miglioramento.


Passaggio 1: Google è tuo amico

Crea un account Google. Se hai un account Gmail che farà. Non lo spiegherò nei dettagli, ma visita qui per crearne uno. Registrati per un'applicazione di Google App Engine. E adesso…


Step 2: Andiamo! Crea il nostro CDN

Basta accedere al proprio account App Engine appena creato e fare clic sul pulsante Crea un'applicazione, che ho chiamato mine "mynewcdn". Io uso Python con Ubuntu (ma alcuni passaggi sono gli stessi per gli utenti di Windows) quindi:

  • Con l'installazione predefinita di Ubuntu, l'interprete Python è già presente nel sistema. Altrimenti installa semplicemente Python. Se sei un utente Windows puoi scaricare Python da Python.org.

  • Scarica l'ultimo SDK di Google App Engine per Python (attualmente 1.5.5);

  • Crea una cartella chiamata Progetti ed estrai SDK di Google App Engine per Python

     fabrizio @ fabrix: ~ / Projects $ decomprimere google_appengine_1.5.5.zip fabrizio @ fabrix: ~ / Projects $ cd google_appengine fabrizio @ fabrix: ~ / Projects / google_appengine $ mkdir mynewcdn

    e ora dovresti avere questo (il nome della cartella DOVREBBE essere lo stesso del nome dell'applicazione)

     fabrizio @ fabrix: ~ / Projects / google_appengine $ ls appcfg.py dev_appserver.py strumenti mynewcdn BUGS gen_protorpc.py new_project_template VERSIONE bulkload_client.py google README bulkloader.py lib RELEASE_NOTES demo LICENZA remote_api_shell.py
  • Ora dentro la tua cartella (per me mynewcdn) è necessario copiare tutte le cartelle con i contenuti statici del proprio sito Web (ad esempio la cartella) / Wp-content / uploads /). Nel mio caso ho creato una cartella all'interno mynewcdn chiamato fdicarlo con tutti i dati. All'interno di una cartella con il nome dell'applicazione che hai creato, crea un file app.yaml. Il contenuto di questo file dovrebbe apparire come segue:

     applicazione: mynewcdn versione: 1 runtime: python api_version: 1 gestore: - url: / fdicarlo static_dir: fdicarlo threadsafe: true
  • Certo che devi sostituire mynewcdn con il nome della tua domanda e fdicarlo con il nome della cartella del tuo contenuto statico. Puoi trovare maggiori informazioni sul file app.yaml nella pagina di configurazione dell'applicazione Python. Ora la situazione è la seguente:

     fabrizio @ fabrix: ~ / Projects / google_appengine / mynewcdn $ ls app.yaml fdicarlo
  • E adesso:

     fabrizio @ fabrix: ~ / Projects / google_appengine / mynewcdn $ cd ... fabrizio @ fabrix: ~ / Projects / google_appengine $ python appcfg.py update mynewcdn

Al termine del caricamento, il tuo CDN è pronto all'indirizzo nameofapp.appspot.com, il mio ad esempio è http://mynewcdn.appspot.com/fdicarlo. Per verificare che il CDN funzioni correttamente, provare a visualizzare alcune immagini e / o file dal CDN.


Passaggio 3: configurazione di CDN

Una volta creata l'istanza sul motore dell'app Google e disponendo dell'URL dell'app, l'unica cosa da fare è aggiungerla alle impostazioni in WP Super Cache e verificare come funziona la pagina. Se da qualche parte in questi passaggi hai la sensazione che non stia accadendo nulla, prova a cancellare le tue pagine cache dalla cache abilitata, nell'altra scheda chiamata "Contenuti" e salva le impostazioni. Ho usato WP Super Cache perché è utile (e potente) anche per la cache ma puoi usare altri plugin come il linker CDN ed i passaggi sono simili.

Nel campo "Off-site URL" inserisco http://mynewcdn.appspot.com/fdicarlo. Certo, dovresti sostituire mynewcdn e fdicarlo con il tuo nome.

Nel campo "Includi dirs" inserisco il contenuto di wp.

E nell'ultimo campo "Escludi se sottostringa" ti suggerisco di inserire "php" per escludere i file php. Imposta i parametri come ti piace, salva e ora hai configurato il tuo CDN. Ora quando aggiungi immagini o altri dati in WordPress devi copiare anche nella cartella locale e aggiornare tutto con:

 fabrizio @ fabrix: ~ / Projects / google_appengine $ python appcfg.py update mynewcdn

Conclusione

Spero che questo abbia aiutato qualcuno a creare e iniziare a utilizzare Google CDN. L'utilizzo di un CDN è solo un aspetto del SEO e una prestazione lenta è spesso causata da molti fattori. Se utilizzi un CDN, il minifying e il caching puoi avere dei buoni miglioramenti nel tuo blog quindi non c'è davvero alcun motivo per non provarli.