Cum să configurați un proxy invers (pas cu pași pentru Nginx și Apache)

Publicat: 2020-08-14

Un proxy invers se află în fața unui server web și primește toate solicitările înainte ca acestea să ajungă la serverul de origine. Funcționează similar cu un proxy direct, cu excepția cazului în care serverul web folosește proxy-ul și nu utilizatorul sau clientul. Proxy-urile inverse sunt de obicei utilizate pentru a îmbunătăți performanța, securitatea și fiabilitatea serverului web.

De exemplu, puteți avea un site non-WordPress găzduit pe domeniul example.com pe Server A și blogul său rulează pe WordPress la example.com/blog URL găzduit pe Server B. Puteți realiza acest lucru adăugând un proxy invers pentru serverul care găzduiește site-ul dvs. principal. Puteți configura proxy-ul invers pentru a redirecționa solicitările către blog către un alt server (de exemplu, o gazdă WordPress gestionată precum Kinsta).

În acest articol, veți afla elementele de bază ale serverelor proxy inverse, cum funcționează acestea, care sunt beneficiile lor majore și cum le puteți utiliza pentru a accelera și a securiza site-ul dvs. WordPress.

Excitat? Să începem!

Ce este un proxy invers?

Pentru a înțelege ce este un server proxy invers, trebuie mai întâi să-i cunoașteți rolul și să vă familiarizați cu toți termenii aferenti acestuia.

Când navigați pe web în mod normal, introducând un nume de domeniu sau făcând clic pe un link, browserul/dispozitivul dvs. se conectează direct la serverul site-ului web și începe să descarce resursele acestuia.

Infografică care arată cum se navighează de obicei pe internet
Cum funcționează de obicei navigarea pe internet

Dacă doriți să vă anonimizați adresa IP de pe site-urile web pe care le vizitați, atunci puteți utiliza un server proxy pentru a-i trimite mai întâi toate solicitările. Acesta va trimite cererile dvs. către soluția DNS și apoi va descărca resursele site-ului web de pe serverul său de origine.

Ulterior, va transmite acele resurse către dispozitivul dvs. Acesta se numește proxy direct.

Infografică care arată cum funcționează un proxy direct
Cum funcționează un server proxy direct

Sunteți complet ascuns de site-ul web, deoarece consideră că solicitarea dvs. provine de la proxy direct.

Pe lângă sporirea confidențialității utilizatorilor, un proxy direct este folosit în principal pentru a ocoli restricțiile de conținut geografic. De exemplu, dacă doriți să vizionați un videoclip care este blocat în regiunea dvs., puteți utiliza un proxy de redirecționare cu o adresă IP pe care videoclipul este disponibil pentru vizionare.

Un proxy direct funcționează aproape în același mod ca o rețea privată virtuală (VPN), dar sunt tehnologii distincte cu cazuri de utilizare unice (uneori se pot suprapune).

Server proxy invers versus server proxy direct

Un server proxy invers acționează ca un front pentru serverul de origine pentru a menține anonimatul și a spori securitatea, la fel cum un utilizator/client poate folosi un proxy direct pentru a realiza același lucru. Acesta asigură că niciun utilizator sau client nu comunică direct cu serverul de origine.

Infografică care arată cum funcționează un proxy invers
Cum funcționează un server proxy invers

Diferența dintre un proxy direct și un proxy invers este minoră, dar funcționează diferit.

Ambele pot lucra împreună, deoarece nu există nicio suprapunere între funcționarea lor. De obicei, utilizatorii/clienții folosesc un proxy direct, în timp ce serverele de origine folosesc un proxy invers.

Infografică care arată diferențele dintre Forward Proxy și Reverse Proxy
Servere proxy direct vs servere proxy invers

Deoarece un administrator de server poate controla modul în care funcționează proxy-ul invers, îl puteți folosi pentru a activa multe funcții utile.

Vom enumera toate beneficiile sale mai târziu în această postare.

De ce să folosiți un proxy invers?

Multe companii, în special întreprinderile mari, folosesc site-uri web personalizate care sunt adaptate nevoilor lor unice și nu rulează pe WordPress. Câteva exemple includ site-uri web de bănci și asigurări.

În alte cazuri, o companie își poate găzdui site-ul pe un serviciu extern care nu le permite să instaleze niciun software extern (de ex. WordPress). De obicei, aceștia sunt comercianți cu amănuntul mici și mijlocii care folosesc o platformă de comerț electronic, cum ar fi Shopify.

Deoarece WordPress are funcții CMS robuste, multe companii, inclusiv întreprinderile mari cu site-uri web personalizate, ar putea prefera să-și găzduiască blogurile folosind WordPress.

O modalitate de a ocoli această problemă este să instalați WordPress pe subdomeniul site-ului principal și să structurați meniurile de navigare astfel încât utilizatorii să poată comuta cu ușurință între site-ul principal și blog.

Deoarece subdomeniile se comportă ca un domeniu unic, poate afecta SEO site-ului dvs. Chiar dacă Google tratează atât subdomeniile, cât și subdirectoarele în mod egal, este nevoie de mai mult efort pentru a optimiza un site web pentru clasamentele motoarelor de căutare dacă este găzduit pe un subdomeniu decât dacă este găzduit într-un subdirector.

Două abordări pentru a găzdui un site web alternativ sub același nume de domeniu
Două abordări pentru a găzdui bloguri pe un site web

Google a reafirmat că tratează atât subdomeniile, cât și subdirectoarele în mod egal, dar unii experți SEO nu sunt de acord cu asta. Și chiar dacă nu afectează SEO-ul site-ului, un site găzduit într-un subdirector este pur și simplu mai ușor de întreținut.

De aceea, puteți folosi un proxy invers pentru a redirecționa solicitările către blogul site-ului găzduit pe un server separat. De exemplu, o bancă își poate găzdui site-ul web principal pe serverele lor în siguranță, dar își poate găzdui și blogul alimentat de WordPress separat pe o gazdă WordPress gestionată precum Kinsta.

Un exemplu de caz de utilizare a unui server proxy invers
Un exemplu de caz de utilizare a proxy invers

Unificarea a două site-uri diferite sub un singur nume de domeniu este unul dintre avantajele cheie ale utilizării unui proxy invers. Ajută mărcile să-și mențină site-urile organizate, profesionale și să mențină credibilitatea.

Aflați cum un proxy invers poate îmbunătăți ️ performanța, securitatea și fiabilitatea... totul în acest ghid ️ Faceți clic pentru a Tweet

Beneficiile utilizării unui proxy invers

Pe lângă cazul de utilizare de mai sus, proxy-urile inverse oferă și multe alte beneficii. Secțiunea de mai jos discută câteva dintre avantajele lor majore.

Echilibrarea sarcinii

Un singur server de origine nu poate gestiona tot traficul de intrare pentru un site web cu milioane de vizitatori unici zilnic. În aceste cazuri, puteți distribui inteligent traficul într-un grup de mai multe servere. De obicei, toate serverele vor găzdui același conținut pentru a elimina un singur punct de eșec, făcând site-ul mai fiabil.

Un proxy invers este o modalitate excelentă de a configura acest lucru, deoarece poate primi traficul de intrare înainte de a ajunge la serverul de origine. Dacă serverul de origine este supraîncărcat sau eșuează complet, acesta poate distribui traficul către alte servere fără a afecta funcționalitatea site-ului.

Proxy-urile inverse pot, de asemenea, direcționa cererile primite către mai multe servere, fiecare server realizând o funcție specifică pentru care este optimizat. Proxy-ul invers poate colecta apoi răspunsuri de la toate serverele și le poate livra clientului.

Deoarece folosim majoritatea proxy-urilor inverse populare în primul rând pentru echilibrarea încărcăturii, acestea sunt denumite și echilibratori de încărcare .

Echilibrare globală a sarcinii serverului (GSLB)

GSLB este o metodă avansată de echilibrare a încărcăturii pentru distribuirea traficului site-ului web între multe servere plasate strategic în întreaga lume. De obicei, se realizează prin tehnica de rutare anycast, în care proxy-ul invers alege nodul serverului pe baza celui mai rapid timp de călătorie între client și server.

GSLB nu numai că crește considerabil fiabilitatea și securitatea site-ului, dar reduce și latența și timpii de încărcare, îmbunătățind astfel experiența utilizatorului. Puteți utiliza GSLB cu alte tehnici de optimizare a rețelei, cum ar fi Spoon Feeding, pentru a elibera și mai mult resursele de calcul ale serverelor de origine.

Deși puteți configura manual Echilibrarea încărcăturii serverului global pe serverul dvs., de obicei, acesta este îngrijit de CDN-uri dedicate, cum ar fi Cloudflare și KeyCDN (care alimentează și Kinsta CDN). Kinsta deservește toate site-urile web găzduite cu acesta printr-un Load Balancer alimentat de Google Cloud Platform.

Securitate sporită

Proxy-urile inverse pot acoperi adresa IP și alte caracteristici ale serverelor de origine. Astfel, serverul de origine al site-ului dumneavoastră își poate menține mai bine anonimatul, sporindu-și în mod semnificativ securitatea.

Deoarece proxy-ul invers va primi tot traficul înainte de a ajunge pe serverul principal, oricăror atacatori sau hackeri le va fi mai greu să vizeze site-ul dvs. web cu amenințări de securitate, cum ar fi atacurile DDoS.

Puteți folosi un firewall strict pentru a consolida proxy-ul invers cu o securitate mai strictă împotriva atacurilor cibernetice comune. Fără instalarea unui proxy invers, este dificil să eliminați programele malware sau să începeți eliminarea.

Un proxy invers precum HAProxy poate adăuga autentificarea de bază a accesului HTTP la un server web care nu o are activată. De asemenea, puteți utiliza un proxy invers pentru a adăuga autentificare centralizată pentru diferite tipuri de solicitări.

Cache puternică

Puteți utiliza un proxy invers în scopuri de accelerare web prin memorarea în cache atât a conținutului static, cât și a celui dinamic. Acest lucru poate reduce sarcina pe serverul de origine, rezultând un site web mai rapid.

De exemplu, dacă serverul dvs. de origine se află în SUA și un utilizator din Europa vă vizitează site-ul web, atunci puteți servi o versiune în cache a site-ului dvs. de pe un server proxy invers din Europa. Deoarece proxy-ul invers este mai aproape de utilizator decât serverul de origine, site-ul web va dura mai puțin timp pentru a se încărca, făcându-l să funcționeze excelent.

Varnish și Nginx FastCGI sunt exemple proeminente de proxy inverse care sunt utilizate pentru stocarea în cache a conținutului web. Dacă site-ul dvs. este găzduit cu Kinsta, nu trebuie să vă faceți griji cu privire la stocarea în cache, deoarece Kinsta se ocupă de toate lucrările de cache pentru dvs.

Compresie superioară

Răspunsurile serverului consumă multă lățime de bandă. Comprimarea răspunsurilor serverului (de exemplu, cu gzip) înainte de a le trimite către client poate reduce cantitatea de lățime de bandă necesară, accelerând răspunsurile serverului în rețea.

Un proxy invers este ideal pentru a comprima răspunsurile serverului, deoarece se află între serverele de origine și client.

Criptare SSL optimizată

Criptarea și decriptarea cererilor SSL/TLS pentru fiecare client poate fi foarte dificilă pentru serverul de origine. Un proxy invers poate prelua această sarcină pentru a elibera resursele serverului de origine pentru alte sarcini importante, cum ar fi difuzarea conținutului.

Un alt avantaj al descărcarii criptării și decriptării SSL/TSL este reducerea latenței pentru clienții care sunt distanțați geografic de serverul de origine.

De asemenea, puteți opta pentru un proxy invers cu hardware specializat de accelerare SSL/TLS pentru a optimiza această sarcină și mai mult. Un astfel de proxy invers se numește proxy de terminare SSL/TLS. Unele servere precum Varnish nu acceptă protocoale SSL/TSL, așa că un proxy invers de terminare SSL/TSL poate ajuta la securizarea traficului care trece prin ele.

Testare A/B mai bună

Majoritatea instrumentelor de testare A/B necesită să utilizați biblioteci JavaScript externe pentru a-și încărca funcțiile. Cu toate acestea, încărcarea scripturilor terță parte poate încetini timpul de încărcare a paginii și poate crea o experiență agitată pentru utilizatori.

În schimb, puteți utiliza un proxy invers pentru a crea două fluxuri separate la nivelul serverului însuși. De exemplu, puteți utiliza split_clients sau metode de sticky route de la Nginx pentru a controla redirecționarea traficului.

Puteți consulta tutorialele despre Nginx și freeCodeCamp pentru a afla mai multe despre efectuarea testării A/B cu un proxy invers.

Monitorizarea și înregistrarea traficului

Un proxy invers captează toate solicitările care trec prin el. Prin urmare, le puteți folosi ca un hub central pentru a monitoriza și înregistra traficul. Chiar dacă utilizați mai multe servere web pentru a găzdui toate componentele site-ului dvs., utilizarea unui proxy invers va facilita monitorizarea tuturor datelor de intrare și de ieșire de pe site-ul dvs.

Cele mai populare proxy inverse

Conform W3Techs, aproape 83% dintre site-uri web nu folosesc servicii de proxy invers pe care le monitorizează.

Statistici ale proxy-urilor inverse utilizate de site-uri web
Statistici ale proxy-urilor inverse utilizate de site-uri web (Sursa: W3Techs.com)

Dintre cele 17% site-uri care folosesc un proxy invers (enumerate mai sus), veți observa că majoritatea sunt CDN-uri. Asta pentru că majoritatea proxy-urilor inverse își ascund implicit existența ca măsură de siguranță. Prin urmare, nu vă puteți baza pe servicii de monitorizare a site-urilor web, cum ar fi W3Techs, pentru a afla care proxy inverse sunt cele mai populare.

Din cercetările și experiența noastră, cele mai populare proxy inverse utilizate astăzi sunt:

Nginx

Nginx este un server web open source care poate servi și ca proxy invers. Pe lângă faptul că este folosit pentru a găzdui site-uri web, este și una dintre cele mai utilizate soluții de proxy invers și de echilibrare a încărcăturii. Conform Netcraft, peste 479 de milioane de servere web foloseau Nginx în decembrie 2019, ceea ce îl face lider în cota de piață a serverelor web.

Cota de piață a serverelor web a tuturor site-urilor conform Netcraft
Cota de piață a serverelor web a tuturor site-urilor (Sursa: Netcraft)

Nginx oferă toate beneficiile proxy invers discutate mai sus, plus multe altele. Îmbunătățește performanța web, securitatea, fiabilitatea și scalabilitatea. Puteți configura Nginx folosind fișierul său de configurare, care este, de asemenea, reîncărcat la cald. La Kinsta, proxy invers Nginx este unul dintre câteva suplimente premium pe care le puteți folosi.

Dar puteți folosi și Nginx Plus, o ofertă comercială, pentru a obține acces la opțiunile de configurare bazate pe API și la alte funcții potrivite pentru site-urile web ale întreprinderilor mari.

Kinsta își alimentează toate site-urile web cu Nginx. S-a clasat în statutul de găzduire web de top Tier al Review Signal în fiecare categorie în care a concurat. Alte companii importante care folosesc Nginx sunt MaxCDN, Cloudflare și Netflix.

Configurarea Nginx ca proxy invers de bază este simplă. Nginx vă oferă, de asemenea, diverse directive pentru a personaliza proxy-ul invers al serverului dvs. conform cerințelor dumneavoastră. Vom discuta cum să facem acest lucru într-o secțiune ulterioară. Dacă sunteți client Kinsta, veți învăța și cum să utilizați un proxy invers pentru site-urile web găzduite cu Kinsta în aceeași secțiune.

Lac

Varnish este un proxy invers HTTP cu sursă deschisă, cu un motor de cache încorporat. Este conceput în primul rând pentru site-uri web cu trafic ridicat care oferă conținut dinamic. De asemenea, puteți utiliza Varnish ca echilibrator de încărcare, un paravan de protecție pentru aplicații web (WAF) și un server de autentificare și autorizare edge.

Funcționează pe toate versiunile moderne de Linux și FreeBSD, fiind folosit în principal ca front pentru serverele web Nginx sau Apache. Puternicul și extrem de flexibil Varnish Configuration Language (VCL) de la Varnish vă permite să definiți diverse caracteristici, cum ar fi gestionarea solicitărilor HTTP, stocarea în cache și conectarea la unul sau mai multe servere web.

Din acest motiv, multe CDN-uri folosesc Varnish ca bază principală pentru livrarea rapidă a conținutului.

Varnish acceptă, de asemenea, Edge Side Includes (ESI), un limbaj care vă ajută să reutilizați secțiuni ale unei pagini web în alte pagini web. Dacă site-ul dvs. folosește mult conținut repetat în diferite pagini, ESI vă poate ajuta să accelerați timpul de încărcare a paginii site-ului dvs. prin memorarea în cache a secțiunilor utilizate frecvent.

Puteți extinde Varnish cu diversele sale module (VMOD-uri). Accesați tutorialul oficial al lui Varnish pentru a afla cum să configurați Varnish ca proxy invers pentru WordPress.

Apache Traffic Server

Apache Traffic Server este un server proxy de cache open source. Este popular pentru funcțiile sale rapide și scalabile. A fost un produs comercial dezvoltat de Yahoo! cu mult timp în urmă, dar l-au făcut open source și l-au donat Fundației Apache pentru întreținere.

Mai multe rețele de conținut majore și CDN-uri precum Comcast, Akamai, LinkedIn, Yahoo și Apple folosesc Apache Traffic Server pentru a-și alimenta tehnologia.

De asemenea, puteți utiliza Apache HTTP Server ( Apache httpd ), un daemon de server HTTP, pentru a configura un proxy invers pe serverul dvs. web. Pe lângă faptul că acționează ca un server web de bază, vă ajută și să furnizați conținut static și dinamic utilizatorilor. Veți învăța cum să configurați Apache ca proxy invers mai târziu în acest articol.

HAProxy

HAProxy este un proxy invers și echilibrator de încărcare open source. Este conceput pentru a se integra cu majoritatea arhitecturilor de server web existente, inclusiv distribuțiile Linux și platformele cloud. Similar cu Nginx, HAProxy folosește un model I/O bazat pe evenimente și acceptă divizarea cererilor în mai multe procese de lucru.

Pentru solicitările HTTP, HAProxy funcționează excepțional de bine chiar și la sarcini grele. Unele dintre site-urile cu cel mai mare trafic de pe internet, cum ar fi Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub și Imgur folosesc HAProxy pentru a-și livra site-urile în mod eficient.

Discutarea modului de implementare a HAProxy este dincolo de scopul acestui articol, dar vă puteți referi la documentația lor pentru a înțelege cum funcționează.

Notă: Traefik și Envoy sunt alte două alternative open source la HAProxy. Ambele sunt proxy inverse de înaltă performanță și echilibrare de încărcare, cu multe funcții avansate.

Alți proxy-uri inverse populare sunt AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer și Google Cloud Load Balancer. Pentru o listă exhaustivă a proxy-urilor inverse de top și a echilibratorilor de încărcare utilizați astăzi, puteți consulta Stackshare.io.

Reverse Proxy: cazuri de utilizare pentru site-uri WordPress

Există în principal trei cazuri de utilizare pentru utilizarea unui proxy invers pentru site-urile WordPress, inclusiv site-uri găzduite la Kinsta.

Încărcarea unui site principal față de un site proxy
Încărcarea unui „Site principal” versus un „Site proxy”

Vom folosi Nginx doar pentru acest exemplu, deoarece este cel mai popular proxy invers folosit astăzi pentru site-urile WordPress. Dar aceleași principii de bază se vor aplica și altor proxy inverse.

Proxy-urile inverse sunt adesea dificil de instalat, configurat și suportat. Din acest motiv, Kinsta oferă un abonament lunar de 50 USD pentru fiecare proxy invers de care aveți nevoie de ajutor la configurare. Puteți contacta echipa de asistență Kinsta pentru mai multe detalii.

1. Site-uri principale și proxy găzduite pe același server

Dacă atât site-ul principal, cât și site-ul proxy sunt găzduiți pe același server, site-ul principal poate rula pe o instalare WordPress, în timp ce o instalare separată WordPress alimentează site-ul proxy.

Deoarece veți avea acces atât la site-uri, cât și la serverul lor web partajat, puteți configura regulile proxy invers pentru site-ul principal și apoi configurați site-ul proxy să se încarce din proxy invers.

Dacă găzduiți ambele site-uri la Kinsta, atunci puteți contacta echipa de asistență Kinsta și le puteți solicita să configureze proxy-ul invers pentru dvs. Iată procedura pe care trebuie să o urmați:

  • Asigurați-vă că atât site-ul principal, cât și site-ul proxy sunt găzduite la Kinsta. Dacă nu sunt, atunci puteți migra ambele site-uri în mediul Kinsta, fie manual, fie prin trimiterea unei cereri de migrare.
  • Deschideți un bilet de asistență și furnizați echipei de asistență Kinsta o descriere clară a configurației domeniului. Voi avea nevoie de aproximativ o zi lucrătoare pentru a configura proxy-ul invers.
  • Kinsta va configura regulile relevante de proxy invers pe site-ul principal și va configura site-ul proxy pentru a se încărca peste proxy invers.

Iată directivele standard de proxy invers Nginx utilizate de Kinsta pentru a încărca un site subdirector peste un proxy invers:

 location ^~ /subfolder/ { proxy_pass http://subfolder.domain.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

În codul de mai sus, trebuie să înlocuiți substituentul /subfolder/ cu numele real al subdirectorului (de ex /blog/ , /shop/ ). În plus, subdomeniul http://subfolder.domain.com ar trebui să se potrivească cu adresa URL utilizată pentru a direcționa proxy-ul invers către site-ul proxy.

Directiva de location include simboluri caret și tilde ( ^~ ) pentru a-i spune lui Nginx că, dacă găsește șirul definit, ar trebui să nu mai caute potriviri și să folosească directivele enumerate aici. Aflați mai multe despre directivele de proxy inversă ale Nginx în documentația sa.
Apoi, trebuie să configurați site-ul proxy pentru a se încărca peste proxy invers. Iată pașii standard urmați de Kinsta pentru a configura site-ul proxy:

  • Creați un subdirector în calea de unde este încărcat site-ul proxy. Toate fișierele site-ului web proxy sunt mutate în acest subdirector.
  • Actualizați fișierele de configurare ale serverului web pentru a defini noul subdirector ca director rădăcină pentru site-ul proxy. În plus, trebuie să adăugați o regulă de rescriere pentru a elimina subdirectorul din URI-ul cererii pentru fiecare cerere de intrare.
  • Actualizați toate adresele URL din baza de date a site-ului proxy pentru a se potrivi cu adresele URL ale site-ului live (de exemplu, example.com/blog ).
  • Editați fișierul wp-config.php al site-ului proxy cu definiția $_SERVER['HTTP_HOST'] , îndreptându-l către adresa URL a site-ului principal.
  • Dacă utilizați un certificat SSL, atunci trebuie să definiți reguli stricte în fișierul wp-config.php pentru a evita buclele de redirecționare.

Notă: un site proxy nu poate crea adrese URL care dublează același subdirector în care se încarcă site-ul proxy. De exemplu, un site proxy la example.com/blog nu poate crea o pagină sau un director la example.com/blog/blog .

2. Numai site-ul proxy găzduit pe serverul dvs

Dacă aveți acces doar la site-ul proxy și la serverul său web, atunci trebuie să contactați administratorul de server al site-ului principal și să le cereți să configureze regulile proxy invers pentru dvs.

Aveți nevoie de o găzduire extrem de rapidă, sigură și prietenoasă pentru dezvoltatori pentru site-urile dvs.? Kinsta este creat ținând cont de dezvoltatorii WordPress și oferă o mulțime de instrumente și un tablou de bord puternic. Verificați planurile noastre

Pentru a face acest lucru, trebuie să urmați aceiași pași descriși mai sus, cu excepția cazului în care trebuie să configurați regulile pe două servere diferite.

Pentru a găzdui site-ul dvs. proxy cu Kinsta, adăugați un domeniu la site care va indica proxy-ul invers. De obicei, subdomeniul se potrivește acestui scop (de ex blog.example.com ) pentru a încărca site-ul proxy printr-un link de subdirector (de exemplu, example.com/blog ).

După configurarea site-ului dvs. proxy pe Kinsta, puteți contacta echipa de asistență Kinsta pentru a configura site-ul proxy să se încarce printr-un proxy invers. În acest moment, echipa noastră de asistență va solicita IP-ul real al serverului dvs. pentru a finaliza procesul de configurare într-un mod care să conteze corect vizitele. Dacă nu puteți furniza un IP static din cauza restricțiilor IP dinamice de la anumiți furnizori (de exemplu, AWS CloudFront), planul dvs. va fi convertit într-un plan comparabil bazat pe lățime de bandă.

În cele din urmă, configurarea proxy-ului invers pe server nu intră în domeniul de aplicare al asistenței Kinsta, deoarece numai administratorul serverului se poate ocupa de asta.

3. Numai site-ul principal găzduit pe serverul dvs

Dacă aveți acces doar la site-ul principal și la serverul său web, atunci ar trebui să configurați proxy-ul invers și să configurați regulile acestuia pentru a încărca site-ul proxy de la o gazdă externă. Instalarea și configurarea site-ului proxy pentru a se încărca prin proxy invers este responsabilitatea administratorului serverului secundar.

Dacă site-ul dvs. principal este găzduit la Kinsta, vă va oferi acces la echipa de asistență Kinsta. Puteți ridica un bilet de asistență cu ei pentru a adăuga regulile standard de proxy inversă enumerate mai devreme în acest articol. Puteți adăuga, de asemenea, orice personalizări suplimentare la aceste reguli, dacă este necesar.

În acest scenariu, sunteți pe deplin responsabil pentru configurarea site-ului proxy pentru a-l încărca corect peste proxy invers.

Cum să configurați Nginx ca proxy invers

Dacă Kinsta nu găzduiește site-ul dvs. și vă gestionați serverele, atunci trebuie să configurați singur proxy-ul invers și să îl configurați astfel încât să trimită către site-ul proxy.

În funcție de sistemul de operare al serverului dvs. web, puteți instala Nginx diferit. Pentru distribuțiile Linux, puteți utiliza diverse pachete Nginx bazate pe versiunea distribuției dvs. Linux.

În exemplul de mai jos, am instalat site-ul principal la numele de domeniu example.com , în timp ce site-ul WordPress proxy este instalat la subdomeniul blog.domain.com . Ambele sunt alimentate de Apache pe un server web care rulează pe Ubuntu 18.04. Vom instala și configura Nginx ca proxy invers pe serverul principal.

Pentru a începe, accesați terminalul serverului dvs. prin SSH. Apoi utilizați comanda apt-get pentru a actualiza lista de pachete a distribuției dvs. și pentru a instala Nginx pe serverul dvs. web.

 sudo apt update sudo apt install nginx

Apoi, trebuie să configurați Nginx pentru solicitările proxy pentru domeniile găzduite pe Apache. Pentru a face acest lucru, creați un nou fișier gazdă virtuală. Aici, folosesc editorul nano pentru a adăuga codul, dar puteți folosi orice editor de cod la alegere.

 sudo nano /etc/nginx/sites-available/example.com.conf

Apoi setați directivele Nginx pentru a transmite cereri către Apache adăugând următorul server {...} și blocuri de location :

 server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com/public # fallback for index.php location / { try_files $uri $uri/ /index.php?$query_string; }location /blog { proxy_pass http://blog.domain.com;proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }

În codul de mai sus, definesc un link subdirector example.com/blog care va fi servit de serverul Apache. Asigurați-vă că utilizați adresa IP publică (sau URL) a site-ului dvs. web proxy în directiva proxy_pass . În cazul meu, site-ul meu proxy este găzduit pe subdomeniul blog.domain.com .

Notă: Asigurați-vă că site-ul web proxy este instalat și gata pentru a fi difuzat înainte de a face orice modificări.

Puteți afla mai multe despre toate directivele proxy invers utilizate aici în indexul detaliat al directivelor Nginx.

Salvați fișierul gazdă virtuală. Apoi, activați noua gazdă virtuală creând o legătură simbolică pentru fișierele denumite example.com.conf atât în ​​directoarele /etc/nginx/sites-available , cât și în /etc/nginx/sites-enabled .

 sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

După aceea, testați Nginx pentru orice erori de configurare.

 sudo nginx -t

Dacă nu există erori, reîncărcați Nginx pentru a aplica modificările.

 sudo systemctl reload nginx

Ați configurat cu succes Nginx să funcționeze ca un proxy invers acum. Pentru a confirma acest lucru, puteți utiliza funcția phpinfo() pentru a verifica variabilele PHP încărcate atunci când vizitați site-ul dvs. proxy.

Sub variabilele PHP SERVER_SOFTWARE și DOCUMENT_ROOT , veți vedea că Apache deservește acest domeniu pe backend. Dar HTTP_X_REAL_IP și HTTP_X_FORWARDED_FOR PHP confirmă faptul că Nginx a fost folosit ca proxy invers pentru a redirecționa cererile.

Puteți accelera servirea site-ului dvs. WordPress prin Nginx utilizând modulele fastcgi_cache și ngx_cache_purge. În timp ce primul modul va stoca în cache site-ul dvs., al doilea modul va șterge automat memoria cache în funcție de evenimente specifice (de exemplu, publicarea sau editarea unei postări/pagini WordPress).

Puteți utiliza pluginul WordPress Nginx Cache Controller pentru a controla memoria cache a serverului proxy Nginx direct din tabloul de bord WordPress. Dacă utilizați o instalare WordPress Multisite, atunci puteți utiliza pluginul Nginx Helper pentru a face același lucru.

Consultați documentația principală Nginx și ghidul de configurare Nginx WordPress pentru o prezentare detaliată a modului de lucru cu Nginx și WordPress.

Cum să configurați Apache ca proxy invers

Înainte de a începe, asigurați-vă că aveți două site-uri web în funcțiune la example.com și blog.domain.com . Primul site poate fi sau nu un site WordPress, dar al doilea ar trebui să fie un site WordPress, deoarece este folosit în principal pentru a încărca blogul domeniului rădăcină la linkul subdirectorului example.com/blog .

Începeți să configurați Apache deschizând terminalul serverului dvs. prin SSH și activând modulul proxy al Apache.

 sudo a2enmod proxy proxy_http ssl

Rularea comenzii de mai sus va reporni cel mai probabil Apache pentru a reîncărca directivele nou definite.

Apoi, editați fișierul gazde virtuale al serverului principal pentru a crea un proxy invers. Iată codul pe care trebuie să-l adaugi:

 <VirtualHost *> DocumentRoot /var/www/app/public SSLProxyEngine On ProxyRequests off ProxyPass /blog http://blog.domain.com ProxyPassReverse /blog http://blog.domain.com </VirtualHost>

Directiva ProxyPass va crea un proxy invers pentru căile specificate, în timp ce directiva ProxyPassReverse va intercepta anteturile de răspuns HTTP trimise prin acest proxy invers și le va rescrie pentru a se potrivi cu serverul Apache.

După salvarea fișierului, trebuie să editați fișierul wp-config.php adăugând următorul cod chiar înainte de linia care vă cere să opriți editarea.

 # ProxyPass Settings # overrides the variables below to ensure that any # request to /blog/* subdirectory is taken care of properly $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI']; $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

În cele din urmă, trebuie să actualizați baza de date a site-ului dvs. WordPress pentru a adăuga valorile de configurare pentru linkul subdirectorului /blog . Puteți face asta rulând următoarea interogare SQL:

 UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Acum ar trebui să puteți vizita https://www.example.com/blog URL și să aveți site-ul dvs. WordPress găzduit la http://blog.domain.com subdomeniul să se încarce fără a-i schimba adresa URL. Puteți continua să utilizați WordPress ca de obicei pentru a naviga, scrie, edita și gestiona site-ul dvs.

Limitările unui proxy invers

  • Un proxy invers prezintă un risc semnificativ de securitate, deoarece poate citi și modifica tot traficul care trece prin el. Dacă transmiteți trafic HTTPS prin proxy invers, atunci acesta trebuie să decripteze și să recripteze datele care trec. Aceasta înseamnă că trebuie să posede cheile private ale certificatului SSL/TLS. Astfel, dacă vreo parte rău intenționată vă poate compromite proxy-ul invers, poate înregistra parole și poate injecta malware în site-urile dvs. web.
  • Dacă dvs. sau utilizatorii dvs. nu vă puteți accesa direct serverul principal, atunci utilizarea unui proxy invers poate duce la un singur punct de eșec. De exemplu, dacă utilizați un proxy invers ca front pentru a servi mai multe domenii, atunci întreruperea acestuia poate duce la deconectarea simultană a tuturor domeniilor.
  • Dacă vă bazați pe un proxy invers terță parte (de exemplu, Cloudflare), atunci le predați informațiile sensibile ale site-ului dvs. În timp ce ei sunt de încredere, nu poți prezice la ce poate duce.
  • Restaurarea copiilor de rezervă sau punerea în direct a site-urilor de intermediar pe site-uri web care se încarcă printr-un proxy invers poate duce la oprirea încărcării corecte a site-ului proxy.

Alegerea dintre un CDN și un proxy invers

CDN-urile sunt o formă avansată de proxy invers, majoritatea configurației și întreținerii fiind asigurate de o terță parte. Ele pot oferi beneficii uimitoare de performanță site-ului dvs. WordPress cu un efort minor din partea dvs.

Nu numai că CDN-urile memorează în cache conținutul și îl furnizează rapid utilizatorilor, dar reduc și sarcina pe serverele dvs. de origine, scad costurile cu lățimea de bandă, oferă un nivel suplimentar de securitate, îmbunătățesc SEO site-ului și vă ajută să vă scalați mai bine site-ul.

Veți observa că majoritatea beneficiilor oferite de CDN-uri sunt aceleași cu cele oferite de proxy invers. Deci, ar trebui să alegeți un CDN în locul unui proxy invers sau invers?

Nu există niciun motiv pentru care trebuie să te mulțumești cu unul singur. Dacă aveți deja instalat un proxy invers, veți vedea în continuare câștiguri de viteză și performanță în urma utilizării unui CDN. Ambele lor cache-urile se stratifică bine și dacă aveți nevoi unice de gestionare a cererilor (de exemplu, conținut dinamic, comerț electronic), atunci îl puteți configura cu ușurință cu niște anteturi personalizate transmise de CDN sau de proxy invers.

Doriți să aflați mai multe despre serverele proxy inverse? Acest articol acoperă... cum funcționează, beneficiile majore, cum le puteți folosi pentru a accelera și a vă asigura site-ul WordPress. Faceți clic pentru a trimite pe Tweet

rezumat

WordPress este foarte flexibil. Îl puteți folosi ca blog, site de comerț electronic sau chiar ca sistem de management al învățării. În cele mai multe cazuri, puteți personaliza WordPress pentru a se potrivi cerințelor dumneavoastră unice.

Cu toate acestea, uneori poate fi necesar să utilizați un domeniu separat sau un server secundar pentru a găzdui un site suplimentar. După cum sa discutat mai devreme, poate fi din cauza utilizării diferitelor stive de tehnologie pentru un site de mare întreprindere sau a lansării unui blog WordPress pentru un site preexistent non-WordPress.

A reverse proxy can help in both these cases, helping you get the most out of WordPress without giving up the main website and starting over.