# Hoe een NGINX reverse proxy instellen op Ubuntu 22.04

NGINX gebruiken als reverse proxy is een populaire optie. Om dit in te stellen, hoeft u alleen maar NGINX te installeren, een configuratiebestand aan te maken en uw serverinstellingen aan te passen. U kunt ook testen of de installatie succesvol was met Gunicorn.

## Hoe NGINX als reverse proxy instellen

Reverse proxies kunnen helpen om **de veiligheid, flexibiliteit en beschikbaarheid van bronnen** te vergroten. Ze worden tussen de client en de server geplaatst en zijn niet zichtbaar voor gebruikers. De NGINX reverse proxy is een sterk aanbevolen oplossing voor inkomende verzoeken. Hieronder leggen we uit hoe je deze kunt installeren en configureren op Ubuntu 22.04.

Tip We hebben ook instructies voor het installeren van NGINX op Ubuntu 20.04. En hier kunt u meer lezen over wat een [proxyserver](https://www.ionos.com/nl-be/digitalguide/server/knowhow/wat-is-een-proxyserver/) is.

### Wat zijn de systeemvereisten voor NGINX als reverse proxy?

Om een NGINX reverse proxy op Ubuntu 22.04 in te stellen, heb je het volgende nodig:

- Een volledig geconfigureerde Ubuntu-server
- Het IP-adres van de server of Unix-domeinsocket
- Het domein van uw server
- `sudo` privileges voor de server

### NGINX installeren als reverse proxy

Werk eerst uw repository bij via de terminal, zodat u **toegang** krijgt **tot de nieuwste pakketten**. Installeer vervolgens NGINX met behulp van het `apt install` commando. Hier is de code:

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

Bevestig met \[Y\] en druk op \[Enter\] om de instellingen toe te passen.

Configureer vervolgens uw firewall zodat NGINX toegang heeft tot uw server. U kunt de volgende opdracht gebruiken om een uitzondering toe te voegen:

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

Controleer vervolgens of de installatie succesvol is verlopen:

```bash
$ systemctl status nginx
```

Als NGINX correct is geïnstalleerd, krijg je een uitvoer die er als volgt uitziet:

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

### Het configuratiebestand aanmaken en de server aanpassen

Nu kunt u uw serverblok configureren om de NGINX reverse proxy voor uw systeem voor te bereiden. Om dat te doen, maakt u een **nieuw configuratiebestand** aan en opent u dit met de teksteditor Nano. Voer de volgende opdracht in en vervang de plaatshouder ‘your\_domain’ door de naam van uw domein:

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

Voeg de volgende inhoud toe wanneer het bestand geopend is. Vervang de plaatshouders ‘your\_domain’ en ‘server\_address’ door het domein en IP-adres of Unix-domeinsocket voor uw 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;
    }
}
```

Sla het bestand op en sluit het. De weergegeven inhoud is de **standaardconfiguratie voor NGINX**. Het gebruikt poort 80 om te reageren op verzoeken van uw domein en server. `proxy_pass` is een essentieel onderdeel voor de rol van NGINX als reverse proxy. U kunt indien nodig ook extra servers instellen.

Maak vervolgens een link naar de map `sites-enabled` waar NGINX in het begin toegang toe heeft. Gebruik de volgende opdracht en vergeet niet de plaatshouder ‘your\_domain’ te vervangen:

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

Controleer uw configuratie op fouten:

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

Als u geen foutmeldingen ontvangt, kunt u nu de NGINX reverse proxy opnieuw opstarten om de instellingen toe te passen. Voer daarvoor de volgende opdracht in:

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

Je bent nu klaar met het configureren van NGINX als reverse proxy. In het volgende gedeelte leggen we uit hoe je de proxy kunt controleren. Dat testen is echter optioneel.

### NGINX reverse proxy controleren met Gunicorn

Als u ervoor kiest om uw NGINX reverse proxy te testen, kunt u daarvoor meestal uw server gebruiken. Als u uw server gebruikt, open deze dan met behulp van de shell. Als alternatief kunt u de slanke **HTTP-webserver Gunicorn** gebruiken, die zeer goed werkt met een NGINX reverse proxy. Werk eerst de pakketten bij en installeer de server:

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

Maak vervolgens een eenvoudige functie om als HTTP-respons naar uw browser te verzenden. Gebruik opnieuw nano:

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

Open het bestand en voer de volgende code in:

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

Sla vervolgens het bestand op en sluit het. Start daarna Gunicorn en open de testmodule:

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

De uitvoer zou er ongeveer zo uit moeten zien:

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

Dat is de bevestiging dat Gunicorn communiceert met het adres `http://127.0.0.1:8000`. **Open** ten slotte **uw browser** en ga naar het domein dat u met NGINX hebt geconfigureerd. De NGINX reverse proxy zal het bericht ‘This is a test’ weergeven.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/nginx-omgekeerde-proxy/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nginx-omgekeerde-proxy/) for AI/LLM consumption.