Slik konfigurerer du en NGINX-reversproxy på Ubuntu 22.04
Det er vanlig å bruke NGINX som omvendt proxy. For å konfigurere det trenger du bare å installere NGINX, opprette en konfigurasjonsfil og justere serverinnstillingene. Du kan også teste om konfigurasjonen fungerer med Gunicorn.
Slik konfigurerer du NGINX som en omvendt proxy
Reversproxyer kan bidra til å øke sikkerheten, fleksibiliteten og tilgjengeligheten av ressurser. De plasseres mellom klienten og serveren og er ikke synlige for brukerne. NGINX-reversproxyen er en løsning som anbefales på det sterkeste for innkommende forespørsler. Nedenfor forklarer vi hvordan du installerer og konfigurerer den på Ubuntu 22.04.
Hva er systemkravene for NGINX som omvendt proxy?
For å konfigurere en NGINX-reversproxy på Ubuntu 22.04 trenger du følgende:
- En fullt konfigurert Ubuntu-server
- Serverens IP-adresse eller Unix-domene-sokkel
- Domenet til serveren din
sudorettigheter for serveren
Installere NGINX som en omvendt proxy
Oppdater først pakkebasen din via terminalen for å få tilgang til de nyeste pakkene. Installer deretter NGINX ved hjelp av kommandoen apt install. Her er koden:
$ sudo apt update
$ sudo apt install nginxbashBekreft med [Y] og trykk [Enter] for å lagre innstillingene.
Deretter må du konfigurere brannmuren slik at NGINX får tilgang til serveren din. Du kan bruke følgende kommando for å legge til et unntak:
$ sudo ufw allow 'Nginx HTTP'bashKontroller deretter at installasjonen ble gjennomført:
$ systemctl status nginxbashHvis NGINX er installert riktig, vil du få et utdata som ser slik ut:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
Docs: man:nginx(8)
Main PID: 9919 (nginx)
Tasks: 2 (limit: 2327)
Memory: 2.9M
CPU: 50ms
CGroup: /system.slice/nginx.service
├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─9920 "nginx: worker process"bashOpprette konfigurasjonsfilen og tilpasse serveren
Nå kan du konfigurere serverblokken din for å forberede NGINX-reversproxyen for systemet ditt. For å gjøre dette må du opprette og åpne en ny konfigurasjonsfil med tekstredigeringsprogrammet Nano. Skriv inn følgende kommando, og husk å erstatte plassholderen «your_domain» med navnet på domenet ditt:
$ sudo nano /etc/nginx/sites-available/your_domainbashNår filen er åpen, legger du til følgende innhold. Erstatt plassholderne «your_domain» og «server_address» med domenet og IP-adressen eller Unix-domene-sokkelen til serveren din:
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
location / {
proxy_pass http://server_address;
include /etc/nginx/proxy_params;
}
}txtLagre og lukk filen. Innholdet som vises, er standardkonfigurasjonen for NGINX. Den bruker port 80 til å svare på forespørsler fra domenet og serveren din. proxy_pass er en viktig komponent for NGINX’ rolle som omvendt proxy. Du kan også konfigurere flere servere om nødvendig.
Deretter oppretter du en lenke til katalogen sites-enabled som NGINX henter inn i starten. Bruk følgende kommando, og husk å erstatte plassholderen «your_domain»:
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/bashSjekk om det er feil i konfigurasjonen din:
$ sudo nginx -tbashHvis du ikke får noen feilmeldinger, kan du nå starte NGINX-reversproxyen på nytt for å ta innstillingene i bruk. For å gjøre det, skriv inn følgende kommando:
$ sudo systemctl restart nginxbashNå er du ferdig med å konfigurere NGINX som en omvendt proxy. I neste avsnitt forklarer vi hvordan du tester proxyen. Denne testen er imidlertid valgfri.
Kontrollere NGINX-reversproxy med Gunicorn
Hvis du velger å teste NGINX-reversproxyen din, kan du vanligvis bruke din egen server til det. Hvis du bruker din egen server, åpner du den via kommandolinjen. Alternativt kan du bruke den enkle HTTP-webserveren Gunicorn, som fungerer svært godt sammen med en NGINX-reversproxy. Oppdater først pakkene og installer serveren:
$ sudo apt update
$ sudo apt install gunicornbashLag deretter en enkel funksjon som skal sendes som et HTTP-svar til nettleseren din. Bruk nano igjen:
$ nano test.pybashÅpne filen og skriv inn følgende kode:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"This is a test"])txtLagre og lukk deretter filen. Start deretter Gunicorn og åpne testmodulen:
$ gunicorn --worker=2 test:appbashResultatet bør se omtrent slik ut:
[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570bashDet er bekreftelsen på at Gunicorn kommuniserer med adressen http://127.0.0.1:8000. Til slutt åpner du nettleseren din og går til domenet du har konfigurert med NGINX. NGINX-reversproxyen vil vise meldingen «Dette er en test».