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.

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:

$ sudo apt update
$ sudo apt install nginx
bash

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:

$ sudo ufw allow 'Nginx HTTP'
bash

Controleer vervolgens of de installatie succesvol is verlopen:

$ systemctl status nginx
bash

Als NGINX correct is geïnstalleerd, 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 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:

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

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:

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

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

Controleer uw configuratie op fouten:

$ sudo nginx -t
bash

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:

$ sudo systemctl restart nginx
bash

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:

$ sudo apt update
$ sudo apt install gunicorn
bash

Maak vervolgens een eenvoudige 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 vervolgens het bestand op en sluit het. Start daarna Gunicorn en open de testmodule:

$ 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 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.

Ga naar hoofdmenu