Nginx je poleg Apache najbolj priljubljen razpoložljiv spletni strežnik. Poleg tega, da je spletni strežnik, se lahko uporablja tudi kot izravnalnik obremenitve ali povratni proxy. V tej vadnici vam bo Quantrimang.com pokazal, kako lahko Nginx uporabljate kot obratni proxy.
Kaj je obratni proxy?
Proxy strežnik deluje kot posrednik med odjemalcem in drugim strežnikom. Proxy strežnik pridobi vire iz strežnika, s katerim se želite povezati, in vam jih pošlje v ogled. Obratni proxy deluje na enak način, le da so vloge obrnjene. Ko od strežnika zahtevate podatke, obratni proxy zadrži zahtevo in jo pošlje ustreznemu zalednemu strežniku. To sistemskim skrbnikom omogoča uporabo strežnika za več aplikacij, poleg tega pa zagotavlja bolj gladek pretok prometa med odjemalcem in strežnikom.

Prednosti obratnih posrednikov
Odvisno od vaše aplikacije imate morda različne primere uporabe povratnega proxyja.
- Obratni proxy vam omogoča zagon več aplikacij na istem strežniku - če imate več aplikacij, ki se izvajajo na istem strežniku, ne morejo vse hkrati »poslušati« na vratih 80 ali 433. Z obratnim proxyjem ga lahko konfigurirate po potrebi preusmeriti promet na posamezne aplikacije.
- Uravnoteženje obremenitve – če imate več strežnikov, ki izvajajo isto aplikacijo, lahko uporabite povratni proxy za enakomerno porazdelitev prometa na vsak strežnik.
- Požarni zid spletne aplikacije - uporabite lahko povratni proxy, da skrijete svojo aplikacijo in tudi filtrirate neželeno pošto ali zaščitite pred napadi DDOS .
- Enostavno beleženje in revizija - Ker ves dohodni promet upravlja obratni proxy, je lažje beležiti in spremljati prometne tokove.
Konfigurirajte Nginx kot obratni proxy
Za nastavitev Nginx kot obratnega proxyja bo članek uporabil parameter proxy_pass v konfiguracijski datoteki Nginx.
Opomba : Ta vadnica predvideva, da imate nekaj znanja o Nginxu in da ste namestili in nastavili Nginx v svojem strežniku.
V večini primerov uporabe bo Nginx sprednji strežnik, ki bo »poslušal« vrata 80 (HTTP) ali 443 (HTTPS) za dohodne zahteve. Ker lahko samo ena storitev »posluša« na vratih 80 ali 443, bo morala vaša aplikacija »poslušati« na drugih vratih, kot so vrata 8081. Najenostavnejša konfiguracija bo videti takole:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
To pomeni, da bodo vse zahteve za myapp.com na vratih 80 preusmerjene na vrata 8081.
Napredne nastavitve
Poleg direktive proxy_pass obstaja več drugih direktiv, ki jih lahko uporabite za naprednejše nastavitve.
- proxy_set_header - To vam omogoča, da nastavite glavo za pošiljanje aplikaciji v ozadju. Oglejte si na primer naslednjo konfiguracijo:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Nastavite lahko potrebne glave strežnika proxy, ki jih posredujete aplikaciji, ji sporočite IP zahteve in oddaljeni naslov ter nato izpišete pravilno vsebino spletnemu mestu, ki zahteva.
- časovna omejitev posrednika - To vam omogoča, da nastavite vrednost časovne omejitve za pošiljanje in prejemanje zahtev posrednika. Na primer:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers – To omogoča Nginxu, da začasno zadrži odgovor proxy strežnika in ga pošlje zahtevajočemu strežniku šele, ko se proxy strežnik neha odzivati. Na primer:
proxy_buffers 32 4k;
Če vaša aplikacija pošilja veliko število datotek, boste morda želeli onemogočiti proxy_buffers:
proxy_buffering off;
Kot lahko vidite, je Nginx obratni proxy strežnik, ki ima veliko uporab. Največji plus pri njem je, da je preprost za konfiguracijo, enostaven za uporabo in še vedno omogoča prilagajanje v bolj zapletenih scenarijih. Za več podrobnosti si lahko ogledate dokumentacijo modula proxy Nginx (na https://nginx.org/en/docs/http/ngx_http_proxy_module.html) ali primere konfiguracije (na https://www .nginx.com/resources/wiki /start/topics/examples/full/).
Upam, da ste uspešni.