Bortsett fra Apache, er Nginx den mest populære webserveren som er tilgjengelig. I tillegg til å være en webserver, kan den også brukes som en lastbalanser eller omvendt proxy. I denne opplæringen vil Quantrimang.com vise deg hvordan du kan bruke Nginx som en omvendt proxy.
Hva er en omvendt proxy?
En proxy-server fungerer som en mellommann mellom en klient og en annen server. Proxy-serveren henter ressurser fra serveren du vil koble til og sender den til deg for visning. En omvendt proxy fungerer på samme måte, bortsett fra at rollene er omvendt. Når du ber om informasjon fra serveren, holder den omvendte proxyen forespørselen og sender den til riktig backend-server. Dette gjør at systemadministratorer kan bruke serveren for flere applikasjoner, i tillegg til å sikre en jevnere trafikkflyt mellom klient og server.

Fordeler med omvendte proxyer
Avhengig av applikasjonen din, kan du ha forskjellige tilfeller av omvendt proxy-bruk.
- En omvendt proxy lar deg kjøre flere applikasjoner på samme server - Hvis du har flere applikasjoner som kjører på samme server, kan de ikke alle "lytte" samtidig på port 80 eller 433. Med en omvendt proxy kan du konfigurere den for å omdirigere trafikk til individuelle applikasjoner om nødvendig.
- Lastbalansering - Hvis du har flere servere som kjører samme applikasjon, kan du bruke en omvendt proxy for å fordele trafikk jevnt til hver server.
- Brannmur for nettapplikasjoner - Du kan bruke omvendt proxy for å skjule applikasjonen din og også for å filtrere spam-IP-er eller beskytte mot DDOS-angrep .
- Enkel logging og revisjon - Siden all innkommende trafikk administreres av en omvendt proxy, er det lettere å logge og overvåke trafikkflyter.
Konfigurer Nginx som en omvendt proxy
For å sette opp Nginx som en omvendt proxy, vil artikkelen bruke proxy_pass- parameteren i Nginx-konfigurasjonsfilen.
Merk : Denne opplæringen forutsetter at du har litt kunnskap om Nginx og har installert og konfigurert Nginx på serveren din.
I de fleste brukstilfeller vil Nginx være front-end-serveren, som "lytter" til port 80 (HTTP) eller 443 (HTTPS) for innkommende forespørsler. Siden det bare kan være én tjeneste som "lytter" på port 80 eller 443, må applikasjonen din "lytte" på en annen port, for eksempel port 8081. Den enkleste konfigurasjonen vil se slik ut:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Dette betyr at alle forespørsler til myapp.com på port 80 vil bli omdirigert til port 8081.
Avanserte innstillinger
I tillegg til proxy_pass-direktivet er det flere andre direktiver du kan bruke for mer avansert oppsett.
- proxy_set_header - Dette lar deg angi en header som skal sendes til bakgrunnsapplikasjonen. Se for eksempel følgende konfigurasjon:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Du kan angi at de nødvendige proxy-overskriftene skal sendes til applikasjonen, fortelle den forespørselens IP-adresse og ekstern adresse, og deretter sende ut riktig innhold til nettstedet som ber om.
- proxy timeout - Dette lar deg angi timeout-verdien for sending og mottak av proxy-forespørsler. For eksempel:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers - Dette lar Nginx midlertidig holde proxy-serverens svar og bare sende det til den forespørrende serveren etter at proxy-serveren er ferdig med å svare. For eksempel:
proxy_buffers 32 4k;
Hvis applikasjonen din sender et stort antall filer, kan det være lurt å deaktivere proxy_buffers:
proxy_buffering off;
Som du kan se, er Nginx en omvendt proxy-server som har mange bruksområder. Det største plusset med det er at det er enkelt å konfigurere, enkelt å bruke og fortsatt lar deg skalere i mer komplekse scenarier. For mer informasjon kan du se Nginx proxy-moduldokumentasjonen (på https://nginx.org/en/docs/http/ngx_http_proxy_module.html) eller konfigurasjonseksempler (på https://www .nginx.com/resources/wiki /start/emner/eksempler/fullstendig/).
Håper du lykkes.