Nginx is een van de populairste webservers en uitstekend geschikt als reverse proxy. In deze handleiding leert u hoe u Nginx configureert voor load balancing, SSL-terminatie en het serveren van meerdere applicaties op één server.
Wat is een reverse proxy?
Een reverse proxy ontvangt verzoeken van het internet en stuurt deze door naar de juiste backend-applicatie. Voordelen zijn: SSL-terminatie op één plek, load balancing, caching en het draaien van meerdere applicaties op verschillende poorten achter één domein.
Basisinstallatie
apt install nginx -y
systemctl enable nginxReverse proxy configuratie
Stel dat u een Node.js applicatie draait op poort 3000. Maak een configuratiebestand aan:
# /etc/nginx/sites-available/mijn-app
server {
listen 80;
server_name app.uwbedrijf.nl;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}Activeer de configuratie:
ln -s /etc/nginx/sites-available/mijn-app /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginxMeerdere applicaties op één server
U kunt meerdere server-blocks aanmaken voor verschillende subdomeinen, elk wijzend naar een andere backend-poort. Bijvoorbeeld api.uwbedrijf.nl naar poort 4000 en admin.uwbedrijf.nl naar poort 5000.
Load balancing
upstream backend {
server 127.0.0.1:3000 weight=3;
server 127.0.0.1:3001 weight=2;
server 127.0.0.1:3002 backup;
}
server {
listen 80;
server_name app.uwbedrijf.nl;
location / {
proxy_pass http://backend;
}
}Nginx verdeelt nu automatisch het verkeer over meerdere instances van uw applicatie.