NGINX gebruiken als reverse proxy is een populaire optie. Om dit in te stellen, hoeft u alleen maar NGINX te in­stal­le­ren, een con­fi­gu­ra­tie­be­stand aan te maken en uw ser­ver­in­stel­lin­gen aan te passen. U kunt ook testen of de in­stal­la­tie succesvol was met Gunicorn.

Hoe NGINX als reverse proxy instellen

Reverse proxies kunnen helpen om de vei­lig­heid, flexi­bi­li­teit en be­schik­baar­heid van bronnen te vergroten. Ze worden tussen de client en de server geplaatst en zijn niet zichtbaar voor ge­brui­kers. De NGINX reverse proxy is een sterk aan­be­vo­len oplossing voor inkomende verzoeken. Hieronder leggen we uit hoe je deze kunt in­stal­le­ren en con­fi­gu­re­ren op Ubuntu 22.04.

Wat zijn de sys­teem­ver­eis­ten voor NGINX als reverse proxy?

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

  • Een volledig ge­con­fi­gu­reer­de Ubuntu-server
  • Het IP-adres van de server of Unix-do­mein­so­c­ket
  • Het domein van uw server
  • sudo pri­vi­le­ges voor de server

NGINX in­stal­le­ren als reverse proxy

Werk eerst uw re­po­si­to­ry bij via de terminal, zodat u toegang krijgt tot de nieuwste pakketten. In­stal­leer ver­vol­gens NGINX met behulp van het apt install commando. Hier is de code:

$ sudo apt update
$ sudo apt install nginx
bash

Bevestig met [Y] en druk op [Enter] om de in­stel­lin­gen toe te passen.

Con­fi­gu­reer ver­vol­gens uw firewall zodat NGINX toegang heeft tot uw server. U kunt de volgende opdracht gebruiken om een uit­zon­de­ring toe te voegen:

$ sudo ufw allow 'Nginx HTTP'
bash

Con­tro­leer ver­vol­gens of de in­stal­la­tie succesvol is verlopen:

$ systemctl status nginx
bash

Als NGINX correct is ge­ïn­stal­leerd, krijg je een uitvoer die er als volgt uitziet:

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

Het con­fi­gu­ra­tie­be­stand aanmaken en de server aanpassen

Nu kunt u uw ser­ver­blok con­fi­gu­re­ren om de NGINX reverse proxy voor uw systeem voor te bereiden. Om dat te doen, maakt u een nieuw con­fi­gu­ra­tie­be­stand aan en opent u dit met de tekst­edi­tor Nano. Voer de volgende opdracht in en vervang de plaats­hou­der ‘your_domain’ door de naam van uw domein:

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

Voeg de volgende inhoud toe wanneer het bestand geopend is. Vervang de plaats­hou­ders ‘your_domain’ en ‘server_address’ door het domein en IP-adres of Unix-do­mein­so­c­ket voor uw server:

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

Sla het bestand op en sluit het. De weer­ge­ge­ven inhoud is de stan­daard­con­fi­gu­ra­tie voor NGINX. Het gebruikt poort 80 om te reageren op verzoeken van uw domein en server. proxy_pass is een es­sen­ti­eel onderdeel voor de rol van NGINX als reverse proxy. U kunt indien nodig ook extra servers instellen.

Maak ver­vol­gens een link naar de map sites-enabled waar NGINX in het begin toegang toe heeft. Gebruik de volgende opdracht en vergeet niet de plaats­hou­der ‘your_domain’ te vervangen:

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

Con­tro­leer uw con­fi­gu­ra­tie op fouten:

$ sudo nginx -t
bash

Als u geen fout­mel­din­gen ontvangt, kunt u nu de NGINX reverse proxy opnieuw opstarten om de in­stel­lin­gen toe te passen. Voer daarvoor de volgende opdracht in:

$ sudo systemctl restart nginx
bash

Je bent nu klaar met het con­fi­gu­re­ren van NGINX als reverse proxy. In het volgende gedeelte leggen we uit hoe je de proxy kunt con­tro­le­ren. Dat testen is echter optioneel.

NGINX reverse proxy con­tro­le­ren 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 al­ter­na­tief kunt u de slanke HTTP-webserver Gunicorn gebruiken, die zeer goed werkt met een NGINX reverse proxy. Werk eerst de pakketten bij en in­stal­leer de server:

$ sudo apt update
$ sudo apt install gunicorn
bash

Maak ver­vol­gens een een­vou­di­ge functie om als HTTP-respons naar uw browser te verzenden. Gebruik opnieuw nano:

$ nano test.py
bash

Open het bestand en voer de volgende code in:

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

Sla ver­vol­gens het bestand op en sluit het. Start daarna Gunicorn en open de test­mo­du­le:

$ gunicorn --worker=2 test:app
bash

De uitvoer zou er ongeveer zo uit moeten zien:

[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

Dat is de be­ves­ti­ging dat Gunicorn com­mu­ni­ceert met het adres http://127.0.0.1:8000. Open ten slotte uw browser en ga naar het domein dat u met NGINX hebt ge­con­fi­gu­reerd. De NGINX reverse proxy zal het bericht ‘This is a test’ weergeven.

Ga naar hoofdmenu