Utilizarea alternativă a Google App Engine pentru optimizarea WordPress

Am căutat o soluție pentru optimizarea site-ului meu, într-un mod foarte ieftin. Adesea o rețea de livrare a conținutului este o soluție bună, dar nu este ieftină, așa că am folosit Google App Engine ca CDN cu Ubuntu.


Pasul 0: Un pic de teorie

Lucrurile ca foile de stil, imaginile și videoclipurile sunt adesea cele mai importante lovite de un server web atunci când o pagină Web este încărcată. S-a dovedit că încărcarea acestor active din domenii diferite ajută browserul cu funcții multiple, deoarece nu trebuie să așteptați până când este încărcat un bun 1 al domeniului example.com pentru a începe descărcarea Asset 2 pe același domeniu. Există o serie de abordări în acest sens, iar în acest tutorial vom analiza trei dintre ele.

Prima abordare

Majoritatea oamenilor creează pur și simplu subdomeniile cum ar fi "images.domain.com", "styles.domain.com" și așa mai departe. Activele sunt apoi apelate din subdomenii, astfel că browserul "crede" că provine dintr-o altă locație, când, în realitate, aceștia întotdeauna țintesc întotdeauna aceeași structură.

Această abordare este utilă și există o diferență semnificativă în timpul încărcării. Un dezavantaj este că încă mai atingi serverul dvs. de web și acum chiar mai greu, deoarece faceți mai multe conexiuni simultan. Dacă încărcați imagini sau fișiere mici, este bine, dar lucrurile vor începe să devină mai urâte dacă încercați să încărcați videoclipuri sau fișiere mai grele; și, de asemenea, în special pentru găzduirea ieftină, nu este întotdeauna posibilă crearea de subdomenii.

A doua abordare

Aceasta constă în a avea un al doilea server web numai pentru a încărca active în timp ce serverul dvs. principal de web se ocupă de celelalte apeluri. Aveți două servere web folosind două porturi diferite. Serverul principal este responsabilul pentru toate solicitările, dar va redirecționa fiecare apel la cel de-al doilea server web. Ce fac oamenii în mod normal aici este utilizarea a două tipuri diferite de servere web. Cel mai frecvent Apache (ca server principal de web) și lighttpd ca server secundar.

Conceptul este destul de frumos, însă înseamnă că acum trebuie să păstrați două servere web. Cel de-al doilea (lighttpd) ar trebui să fie într-adevăr unul, deoarece odată ce este configurat, va servi doar conținut static. Cu toate acestea, sunt două servere web pe serverul dvs. și, dacă ceva nu merge bine, este puțin dificil de depanat.

A treia abordare

Practic, aceasta constă în găzduirea activelor în altă parte, unde nu va trebui să păstrați sau să păstrați atenția asupra performanței, deoarece sarcina principală a acestui server este servirea conținutului static. Acest cer este numit "Cloud Computing"și este un" cuvânt buzz "la moment.În principiu, este format dintr-o rețea de servere în locații strategice.Am numit-o locuri strategice, deoarece serverele sunt situate în apropierea dvs. Ei bine, nu, aproape de tine, dar de la IP-ul dvs. vă redirecționează către serverul cel mai apropiat, de unde veți primi bunurile așa cum sunt necesare.

Funcționează destul de mult ca un balancer de sarcină, dar pe baza locației, în loc de numărul de conexiuni. Se asigură că biții călătoresc la cea mai mică distanță pentru a ajunge la tine. Cu alte cuvinte, dacă vă aflați în Italia (ca mine), de ce ar trebui să așteptați ca datele să călătorească din SUA, dacă există un server imediat lângă dumneavoastră. Există câteva companii care oferă CDN la un preț foarte rezonabil, dar astăzi vom vorbi despre lucruri gratuite!

Înainte de a începe

Înainte de a începe acest tutorial, trebuie să clarific faptul că forma CDN pe care o vom folosi aici nu este cu adevărat CDN, deoarece nu oferă o scalabilitate foarte ridicată și nu a fost dezvoltată pentru singurul scop al servirii dosarelor statice. Aceasta înseamnă că nu va avea aceeași performanță ridicată a unui serviciu desemnat special pentru această sarcină. Pentru unii (ca mine), nu va face o astfel de diferență enormă, deoarece această metodă este mai bună decât nimic și este mult mai rapidă decât multe servere din jur. De asemenea, pentru majoritatea oamenilor care folosesc companii de hosting și au o lățime de bandă limitată, aceasta va fi o imbunatățire imensă.


Pasul 1: Google este prietenul tău

Creați un Cont Google. Dacă aveți un cont Gmail care va face acest lucru. Nu voi explica în detaliu, dar vizitați aici pentru a crea unul. Înscrieți-vă pentru o aplicație Google App Engine. Si acum…


Pasul 2: Să mergem! Creați CDN-ul nostru

Pur și simplu conectați-vă la noul dvs. cont Motor Engine și faceți clic pe butonul Creează o aplicație, pe care mi-l denumesc "mynewcdn". Eu folosesc Python cu Ubuntu (dar pașii sunt aceiași pentru utilizatorii Windows) astfel:

  • Cu instalarea implicită a Ubuntu, interpretul Python este deja prezent în sistem. În caz contrar, instalați doar Python. Dacă sunteți utilizatori Windows puteți descărca Python de la Python.org.

  • Descărcați cel mai recent SDK Google App Engine pentru Python (în prezent la 1.5.5);

  • Creați un dosar numit Proiecte și extrageți Google App Engine SDK pentru Python

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

    și acum ar trebui să aveți acest lucru (numele dosarului ar trebui să fie același cu numele aplicației)

     fabrizio @ fabrix: ~ / Proiecte / google_appengine $ ls appcfg.py dev_appserver.py instrumente mynewcdn BUGS gen_protorpc.py new_project_template VERSIUNE bulkload_client.py google README bulkloader.py lib RELEASE_NOTES demo LICENȚĂ remote_api_shell.py
  • Acum, în dosarul dvs. (pentru mine mynewcdn) trebuie să copiați toate dosarele cu conținutul static al site-ului dvs. (de exemplu, dosarul / Wp-content / uploads /). În cazul meu am creat un dosar înăuntru mynewcdn denumit fdicarlo cu toate datele. Într-un dosar cu numele aplicației pe care ați creat-o, faceți un fișier app.yaml. Conținutul acestui fișier ar trebui să arate după cum urmează:

     aplicație: versiunea mynewcdn: 1 runtime: python api_version: 1 manipulatoare: - url: / fdicarlo static_dir: fdicarlo threadsafe: true
  • Desigur, trebuie să le înlocuiți mynewcdn cu numele aplicației dvs. și fdicarlo cu numele folderului conținutului static. Puteți găsi mai multe informații despre fișierul app.yaml din pagina Configurare aplicație Python. Acum, situația arată astfel:

     fabrizio @ fabrix: ~ / Proiecte / google_appengine / mynewcdn $ ls app.yaml fdicarlo
  • Si acum:

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

După terminarea încărcării, CDN-ul este pregătit la adresa respectivă nameofapp.appspot.com, a mea de exemplu este http://mynewcdn.appspot.com/fdicarlo. Pentru a verifica dacă CDN funcționează corect, încercați să vedeți câteva imagini și / sau fișiere din CDN.


Pasul 3: Configurarea CDN

După ce ați creat instanța pe motorul aplicațiilor Google și aveți adresa URL a aplicației, singurul lucru de făcut este să-l adăugați la setările din WP Super Cache și să testați modul în care funcționează pagina. Dacă undeva în acești pași aveți senzația că nu se întâmplă nimic, încercați să ștergeți paginile cache din memoria cache activă, în celălalt fișier numit "Conținut" și salvați setările. Am folosit WP Super Cache deoarece este util (și puternic) și pentru memoria cache, dar puteți folosi alte plugin-uri cum ar fi linkerul CDN și pașii sunt asemănători.

În câmpul "Adresa URL externă", introdu http://mynewcdn.appspot.com/fdicarlo. Desigur, ar trebui să înlocuiți mynewcdn și fdicarlo cu numele tău.

În câmpul "Includeți dirs" am pus wp-content.

Și în ultimul câmp "Exclude if substring" Vă sugerez să inserați "php" pentru a exclude fișierele php. Setați parametrii cum vă place, salvați și acum ați configurat CDN. Acum când adăugați imagini sau alte date în WordPress, ar trebui să copiați și în folderul local și să le actualizați pe toate cu:

 fabrizio @ fabrix: ~ / Proiecte / google_appengine $ python appcfg.py actualizare mynewcdn

Concluzie

Sper că a ajutat pe cineva să creeze și să înceapă să utilizeze Google CDN. Utilizarea unui CDN este doar un aspect al SEO și o performanță lentă este adesea cauzată de mulți factori. Dacă folosiți un CDN, minificarea și cache-ul, puteți avea îmbunătățiri bune pentru blogul dvs., astfel încât nu există nici un motiv să nu încercați.

Cod