În afară de Apache, Nginx este cel mai popular server web disponibil. Pe lângă faptul că este un server web, poate fi folosit și ca echilibrator de încărcare sau proxy invers. În acest tutorial, Quantrimang.com vă va arăta cum puteți utiliza Nginx ca proxy invers.
Ce este un proxy invers?
Un server proxy acționează ca un intermediar între un client și un alt server. Serverul proxy preia resursele de la serverul la care doriți să vă conectați și vi le trimite pentru a le vizualiza. Un proxy invers funcționează în același mod, cu excepția faptului că rolurile sunt inversate. Când solicitați informații de la server, proxy-ul invers reține cererea și o trimite la serverul backend corespunzător. Acest lucru permite administratorilor de sistem să utilizeze serverul pentru mai multe aplicații, precum și să asigure un flux de trafic mai fluid între client și server.

Avantajele proxy-urilor inverse
În funcție de aplicația dvs., este posibil să aveți diferite cazuri de utilizare a proxy invers.
- Un proxy invers vă permite să rulați mai multe aplicații pe același server - Dacă aveți mai multe aplicații care rulează pe același server, acestea nu pot „asculta” toate în același timp pe portul 80 sau 433. Cu un proxy invers, îl puteți configura pentru a redirecționa traficul către aplicații individuale, dacă este necesar.
- Echilibrare de încărcare - Dacă aveți mai multe servere care rulează aceeași aplicație, puteți utiliza un proxy invers pentru a distribui traficul în mod uniform către fiecare server.
- Firewall aplicație web - Puteți utiliza proxy invers pentru a vă ascunde aplicația și, de asemenea, pentru a filtra IP-urile de spam sau pentru a vă proteja de atacurile DDOS .
- Înregistrare și auditare ușoară - Deoarece tot traficul de intrare este gestionat de un proxy invers, este mai ușor să înregistrați și să monitorizați fluxurile de trafic.
Configurați Nginx ca proxy invers
Pentru a configura Nginx ca proxy invers, articolul va folosi parametrul proxy_pass din fișierul de configurare Nginx.
Notă : Acest tutorial presupune că aveți cunoștințe despre Nginx și că ați instalat și configurat Nginx pe serverul dvs.
În majoritatea cazurilor de utilizare, Nginx va fi serverul front-end, „ascultând” portul 80 (HTTP) sau 443 (HTTPS) pentru cererile primite. Deoarece poate exista un singur serviciu care „ascultă” pe portul 80 sau 443, aplicația dumneavoastră va trebui să „asculte” pe alt port, cum ar fi portul 8081. Cea mai simplă configurație va arăta astfel:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Aceasta înseamnă că toate solicitările către myapp.com de la portul 80 vor fi redirecționate către portul 8081.
Setari avansate
În plus față de directiva proxy_pass , există câteva alte directive pe care le puteți utiliza pentru o configurare mai avansată.
- proxy_set_header - Aceasta vă permite să setați un antet pentru a-l trimite către aplicația de fundal. De exemplu, vedeți următoarea configurație:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Puteți seta anteturile proxy necesare pentru a le transmite aplicației, puteți să îi spuneți IP-ul și adresa de la distanță a solicitării și apoi să trimiteți conținutul corect pe site-ul web solicitant.
- timeout proxy - Aceasta vă permite să setați valoarea timeout pentru trimiterea și primirea cererilor proxy. De exemplu:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers - Acest lucru îi permite lui Nginx să rețină temporar răspunsul serverului proxy și să îl trimită la serverul solicitant numai după ce serverul proxy termină de răspuns. De exemplu:
proxy_buffers 32 4k;
Dacă aplicația dvs. trimite un număr mare de fișiere, atunci vă recomandăm să dezactivați proxy_buffers:
proxy_buffering off;
După cum puteți vedea, Nginx este un server proxy invers care are multe utilizări. Cel mai mare plus este că este simplu de configurat, ușor de utilizat și vă permite totuși să scalați în scenarii mai complexe. Pentru mai multe detalii, puteți vedea documentația modulului proxy Nginx (la https://nginx.org/en/docs/http/ngx_http_proxy_module.html) sau exemple de configurare (la https://www .nginx.com/resources/wiki /start/subiecte/exemple/complet/).
Sper că aveți succes.