# Sådan konfigureres en NGINX-reverse-proxy på Ubuntu 22.04

Det er en udbredt løsning at bruge NGINX som reverse proxy. For at konfigurere det skal du blot installere NGINX, oprette en konfigurationsfil og justere serverindstillingerne. Du kan også teste, om opsætningen er lykkedes, ved hjælp af Gunicorn.

## Sådan konfigureres NGINX som en reverse proxy

Reverse proxyservere kan bidrage til at øge **sikkerheden, fleksibiliteten og ressourcetilgængeligheden**. De placeres mellem klienten og serveren og er ikke synlige for brugerne. NGINX-reverse-proxyserveren er en stærkt anbefalet løsning til indgående anmodninger. Nedenfor forklarer vi, hvordan du installerer og konfigurerer den på Ubuntu 22.04.

Tip Vi har også en vejledning til installation af NGINX på Ubuntu 20.04. Du kan læse mere om, hvad en [proxyserver](https://www.ionos.com/da-dk/digitalguide/server/know-how/hvad-er-en-proxyserver/) er, her.

### Hvad er systemkravene til NGINX som reverse proxy?

For at konfigurere en NGINX-reverse-proxy på Ubuntu 22.04 skal du bruge følgende:

- En fuldt konfigureret Ubuntu-server
- Serverens IP-adresse eller Unix-domænesocket
- Domænet for din server
- `sudo` rettigheder til serveren

### Installation af NGINX som reverse proxy

Start med at opdatere dit pakkerepositorium via terminalen, så du får **adgang til de nyeste pakker**. Installer derefter NGINX ved hjælp af kommandoen `apt install`. Her er koden:

```bash
$ sudo apt update
$ sudo apt install nginx
```

Bekræft med \[Y\] og tryk på \[Enter\] for at gemme indstillingerne.

Konfigurer derefter din firewall, så NGINX har adgang til din server. Du kan bruge følgende kommando til at tilføje en undtagelse:

```bash
$ sudo ufw allow 'Nginx HTTP'
```

Kontroller derefter, at installationen er gennemført korrekt:

```bash
$ systemctl status nginx
```

Hvis NGINX er installeret korrekt, vil du få et resultat, der ser sådan ud:

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

### Oprettelse af konfigurationsfilen og tilpasning af serveren

Nu kan du konfigurere din serverblok for at forberede NGINX-reverseproxyen til dit system. For at gøre det skal du oprette og åbne en **ny konfigurationsfil** med teksteditoren Nano. Indtast følgende kommando, og sørg for at erstatte pladsholderen »your\_domain« med navnet på dit domæne:

```bash
$ sudo nano /etc/nginx/sites-available/your_domain
```

Når filen er åben, skal du indsætte følgende indhold. Erstat pladsholderne »your\_domain« og »server\_address« med domænet og IP-adressen eller Unix-domænesocket for din server:

```txt
server {
    listen 80;
    listen [::]:80;
    server_name your_domain www.your_domain;
        
    location / {
        proxy_pass http://server_address;
        include /etc/nginx/proxy_params;
    }
}
```

Gem og luk filen. Det viste indhold er **standardopsætningen for NGINX**. Den bruger port 80 til at besvare anmodninger fra dit domæne og din server. `proxy_pass` er en vigtig komponent for NGINX’s funktion som reverse proxy. Du kan også konfigurere yderligere servere, hvis det er nødvendigt.

Opret derefter et link til den mappe `sites-enabled` som NGINX åbner i starten. Brug følgende kommando, og husk at erstatte pladsholderen »your\_domain«:

```bash
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/
```

Kontroller, om der er fejl i din konfiguration:

```bash
$ sudo nginx -t
```

Hvis der ikke vises nogen fejlmeddelelser, kan du nu genstarte NGINX-reverseproxyen for at anvende indstillingerne. Det gør du ved at indtaste følgende kommando:

```bash
$ sudo systemctl restart nginx
```

Du er nu færdig med at konfigurere NGINX som en reverse proxy. I det næste afsnit forklarer vi, hvordan du tester proxyen. Denne test er dog valgfri.

### Kontrol af NGINX-reverse-proxy med Gunicorn

Hvis du vælger at teste din NGINX-reverse-proxy, kan du som regel bruge din egen server til det. Hvis du bruger din egen server, skal du åbne den via kommandolinjen. Alternativt kan du bruge den lette **HTTP-webserver Gunicorn**, som fungerer rigtig godt sammen med en NGINX-reverse-proxy. Start med at opdatere pakkerne og installere serveren:

```bash
$ sudo apt update
$ sudo apt install gunicorn
```

Opret derefter en simpel funktion, der skal sendes som et HTTP-svar til din browser. Brug igen nano:

```bash
$ nano test.py
```

Åbn filen, og indsæt følgende kode:

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

Gem og luk derefter filen. Start derefter Gunicorn, og åbn testmodulet:

```bash
$ gunicorn --worker=2 test:app
```

Resultatet bør se nogenlunde sådan her ud:

```bash
[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
```

Det er bekræftelsen på, at Gunicorn kommunikerer med adressen `http://127.0.0.1:8000`. Til sidst **skal du åbne din browser** og gå til det domæne, du har konfigureret med NGINX. NGINX-reverseproxyen vil vise meddelelsen »Dette er en test«.


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nginx-reverse-proxy/](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nginx-reverse-proxy/) for AI/LLM consumption.