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
  • sudo rettigheter 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 nginx
bash

Bekreft 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'
bash

Kontroller deretter at installasjonen ble gjennomført:

$ systemctl status nginx
bash

Hvis 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"
bash

Opprette 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_domain
bash

Nå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;
    }
}
txt

Lagre 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/
bash

Sjekk om det er feil i konfigurasjonen din:

$ sudo nginx -t
bash

Hvis 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 nginx
bash

Nå 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 gunicorn
bash

Lag deretter en enkel funksjon som skal sendes som et HTTP-svar til nettleseren din. Bruk nano igjen:

$ nano test.py
bash

Åpne filen og skriv inn følgende kode:

def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"This is a test"])
txt

Lagre og lukk deretter filen. Start deretter Gunicorn og åpne testmodulen:

$ gunicorn --worker=2 test:app
bash

Resultatet 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: 10570
bash

Det 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».

Go to Main Menu