Cum să configurați Nginx Reverse Proxy pentru Apache
Nginx și Apache sunt două dintre cele mai populare servere web din lume, fiecare cu punctele sale forte. Apache este cunoscut pentru flexibilitatea și sistemul său robust de module, în timp ce Nginx este preferat pentru performanța sa ridicată și consumul redus de resurse, în special pentru servirea conținutului static. În multe scenarii, este benefică combinarea celor două prin utilizarea Nginx ca proxy invers în fața Apache. Această configurare permite Nginx să gestioneze cererile primite și să servească fișiere statice, în timp ce Apache gestionează conținutul dinamic, cum ar fi scripturile PHP sau aplicațiile bazate pe baze de date.
În acest articol, vă vom ghida prin procesul de configurare a Nginx ca proxy invers pentru Apache, asigurând o configurație fără probleme și eficientă a serverului web.
Ce este un proxy invers?
Un proxy invers este un server care se află în fața unuia sau mai multor servere backend și direcționează solicitările clienților către serverul corespunzător. În acest caz, Nginx va acționa ca un proxy invers, trimițând solicitările către Apache, care va servi conținut dinamic.
Utilizarea Nginx ca proxy invers oferă mai multe beneficii:
- Performanță îmbunătățită: Nginx excelează la servirea rapidă a fișierelor statice (de exemplu, imagini, CSS, JavaScript), reducând sarcina pe Apache.
- Echilibrarea încărcăturii: Nginx poate distribui traficul între mai multe servere backend, îmbunătățind disponibilitatea și fiabilitatea.
- Terminarea SSL: Nginx poate gestiona criptarea SSL, descărcând sarcina de calcul de la Apache.
- Securitate: Nginx poate oferi funcții de securitate suplimentare, cum ar fi filtrarea cererilor și limitarea ratei.
Pasul 1: Instalarea Nginx și Apache
Înainte de a configura Nginx ca proxy invers, asigurați-vă că atât Nginx, cât și Apache sunt instalate pe serverul dvs. Le puteți instala utilizând managerul de pachete, în funcție de distribuția Linux.
Pentru Debian/Ubuntu:
Pentru CentOS/RHEL:
După ce Nginx și Apache sunt instalate, porniți și activați ambele servicii pentru a vă asigura că rulează la pornire:
Pasul 2: Configurați Apache
Apache va acționa ca server backend, procesând cereri dinamice, cum ar fi scripturile PHP. Asigurați-vă că Apache este configurat să asculte pe un port specific, de obicei portul
8080
80
80
Configurați Apache pentru a asculta pe portul 8080:
- Deschideți fișierul de configurare Apache:
- Găsiți linia care specifică portul pe care ascultă Apache (de obicei) și schimbați-o în:
Listen 80
- Salvați modificările și ieșiți din editor.
- Reporniți Apache pentru a aplica modificările:
Acum, Apache este configurat să asculte pe portul
8080
80
Pasul 3: Configurați Nginx ca proxy invers
În continuare, trebuie să configurăm Nginx pentru a acționa ca un proxy invers, redirecționând cererile către Apache. Vom crea o gazdă virtuală în Nginx care să asculte pe portul
80
8080
Creați configurația gazdei virtuale Nginx:
- Deschideți sau creați un nou fișier de configurare a gazdei virtuale în Nginx:
- Adăugați următoarea configurație la fișier:
În această configurație:
- : Nginx ascultă pe portul
listen 80
pentru cererile primite.80
- : Domeniul sau adresa IP pe care Nginx o va servi.
server_name
- : Înaintează solicitările către Apache, care ascultă pe portul
proxy_pass
.8080
- : Transmite diverse antete către Apache, inclusiv IP-ul și protocolul original al clientului.
proxy_set_header
- Blocul depentru conținutul static asigură faptul că Nginx servește direct fișiere precum imagini, CSS și JavaScript, reducând astfel sarcina asupra Apache.
locație
- Salvați și închideți fișierul de configurare.
- Dacă utilizați Debian/Ubuntu, activați site-ul prin crearea unui link simbolic către:
sites-enabled
- Testați configurația Nginx pentru erori de sintaxă:
- Reporniți Nginx pentru a aplica noua configurație:
Pasul 4: Testarea configurației reverse proxy
Acum că Nginx și Apache sunt configurate, este timpul să testați configurația proxy-ului invers pentru a vă asigura că totul funcționează corect.
- Vizitați-vă domeniul sau adresa IP: Deschideți browserul și navigați la(înlocuiți cu domeniul dvs. real sau IP-ul serverului). Dacă totul este configurat corect, ar trebui să vedeți conținutul servit de Apache, dar direcționat prin Nginx.
http://example.com
- Verificați jurnalele Nginx și Apache: Dacă există probleme, verificați jurnalele Nginx și Apache pentru a depana problemele:
- Jurnalele Nginx:și
/var/log/nginx/access.log
/var/log/nginx/error.log
- Jurnalele Apache:și
/var/log/apache2/access.log
(sau/var/log/apache2/error.log
pentru CentOS/RHEL)/var/log/httpd/
- Jurnalele Nginx:
Pasul 5: (Opțional) Configurați SSL pentru HTTPS
Dacă doriți să vă securizați site-ul web cu HTTPS, Nginx poate gestiona terminarea SSL. Aceasta înseamnă că Nginx va gestiona certificatele SSL și criptarea, în timp ce Apache va gestiona doar traficul HTTP decriptat.
Pași pentru a activa SSL:
- Obțineți un certificat SSL: Puteți utiliza Let’s Encrypt pentru a obține un certificat SSL gratuit pentru domeniul dvs:
- Modificați configurația Nginx: Actualizați fișierul de configurare Nginx pentru a asculta pe portulpentru HTTPS:
443
- Redirecționarea HTTP către HTTPS: Adăugați un bloc de redirecționare în configurație pentru a vă asigura că toate cererile HTTP sunt redirecționate către HTTPS:
- Reporniți Nginx: Reporniți Nginx pentru a aplica modificările:
Concluzie
Utilizarea Nginx ca proxy invers pentru Apache este o configurare puternică care combină punctele forte ale ambelor servere web. Nginx gestionează eficient conținutul static și cererile primite, în timp ce Apache gestionează conținutul dinamic și procesarea backend. Această abordare hibridă poate spori considerabil performanța, securitatea și scalabilitatea infrastructurii serverului dvs. web.
Urmând pașii descriși în acest ghid, puteți configura Nginx ca proxy invers în fața Apache și puteți beneficia de cele mai bune avantaje din ambele lumi. În plus, implementarea SSL cu Nginx asigură securitatea site-ului dvs. web, asigurând liniștea dvs. și a utilizatorilor dvs.