Osim Apachea, Nginx je najpopularniji dostupni web poslužitelj. Osim kao web poslužitelj, može se koristiti i kao balanser opterećenja ili obrnuti proxy. U ovom vodiču Quantrimang.com će vam pokazati kako možete koristiti Nginx kao obrnuti proxy.
Što je obrnuti proxy?
Proxy poslužitelj djeluje kao posrednik između klijenta i drugog poslužitelja. Proxy poslužitelj dohvaća resurse s poslužitelja na koji se želite spojiti i šalje vam ga na pregled. Obrnuti proxy radi na isti način, osim što su uloge obrnute. Kada zatražite informacije od poslužitelja, obrnuti proxy zadržava zahtjev i šalje ga odgovarajućem pozadinskom poslužitelju. Ovo administratorima sustava omogućuje korištenje poslužitelja za više aplikacija, kao i osiguravanje glatkog protoka prometa između klijenta i poslužitelja.

Prednosti obrnutih proxyja
Ovisno o vašoj aplikaciji, možda ćete imati različite slučajeve upotrebe obrnutog proxyja.
- Obrnuti proxy omogućuje pokretanje više aplikacija na istom poslužitelju - Ako imate više aplikacija pokrenutih na istom poslužitelju, ne mogu sve istovremeno "slušati" na portu 80 ili 433. S obrnutim proxyjem možete ga konfigurirati za preusmjeravanje prometa na pojedinačne aplikacije ako je potrebno.
- Balansiranje opterećenja - ako imate više poslužitelja koji izvode istu aplikaciju, možete koristiti obrnuti proxy za ravnomjernu distribuciju prometa na svaki poslužitelj.
- Vatrozid web aplikacije - možete koristiti obrnuti proxy da sakrijete svoju aplikaciju i također filtrirate neželjene IP adrese ili zaštitite od DDOS napada .
- Jednostavno bilježenje i revizija - Budući da svim dolaznim prometom upravlja obrnuti proxy, lakše je bilježiti i nadzirati tokove prometa.
Konfigurirajte Nginx kao obrnuti proxy
Za postavljanje Nginxa kao obrnutog proxyja, članak će koristiti parametar proxy_pass u Nginx konfiguracijskoj datoteci.
Napomena : Ovaj vodič pretpostavlja da imate neko znanje o Nginxu i da ste instalirali i postavili Nginx na svom poslužitelju.
U većini slučajeva korištenja, Nginx će biti front-end poslužitelj, "osluškujući" port 80 (HTTP) ili 443 (HTTPS) za dolazne zahtjeve. Budući da samo jedna usluga može "slušati" na portu 80 ili 443, vaša će aplikacija morati "slušati" na drugom portu, kao što je port 8081. Najjednostavnija konfiguracija izgledat će ovako:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
To znači da će svi zahtjevi prema myapp.com na portu 80 biti preusmjereni na port 8081.
Napredne postavke
Uz direktivu proxy_pass , postoji nekoliko drugih direktiva koje možete koristiti za naprednije postavljanje.
- proxy_set_header - Ovo vam omogućuje postavljanje zaglavlja za slanje pozadinskoj aplikaciji. Na primjer, pogledajte sljedeću konfiguraciju:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Možete postaviti potrebna proxy zaglavlja koja će se proslijediti aplikaciji, reći joj IP zahtjeva i udaljenu adresu, a zatim ispisati točan sadržaj web stranici koja zahtijeva.
- proxy timeout - Ovo vam omogućuje postavljanje vrijednosti isteka vremena za slanje i primanje proxy zahtjeva. Na primjer:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers - Ovo omogućuje Nginxu da privremeno zadrži odgovor proxy poslužitelja i pošalje ga poslužitelju koji zahtijeva tek nakon što proxy poslužitelj završi s odgovorom. Na primjer:
proxy_buffers 32 4k;
Ako vaša aplikacija šalje veliki broj datoteka, možda biste trebali onemogućiti proxy_buffers:
proxy_buffering off;
Kao što vidite, Nginx je obrnuti proxy poslužitelj koji ima mnoge namjene. Najveći plus u vezi s njim je to što ga je jednostavno konfigurirati, lako koristiti, a još uvijek vam omogućuje skaliranje u složenijim scenarijima. Za više detalja možete vidjeti dokumentaciju Nginx proxy modula (na https://nginx.org/en/docs/http/ngx_http_proxy_module.html) ili primjere konfiguracije (na https://www .nginx.com/resources/wiki /početak/teme/primjeri/puno/).
Nadam se da ste uspješni.