Meerdere diensten achter één server met Nginx Proxy Manager
Als op één server meer dan één project draait, loop je vroeg of laat tegen poort 80 en 443 aan, die maar door één proces tegelijk kunnen worden gebruikt. Een Habr-artikel uit de Selectel-blog laat stap voor stap zien hoe je dat oplost met Nginx Proxy Manager.
De auteur legt eerst het probleem uit: geprivilegieerde poorten, de regel dat een poort maar één listener heeft, CORS-problemen wanneer frontend en backend op aparte poorten draaien, en het ontbreken van HTTPS. Een reverse proxy lost dit op als tussenpersoon door het verkeer op domein en pad te routeren. Een extra voordeel is dat de firewall alleen poorten 22, 80 en 443 open hoeft te hebben.
De testopstelling is een VDS met 2 vCPU's, 2 GB RAM en 40 GB NVMe, met Ubuntu 24.04 en Docker uit de officiële repository. Het netwerk wordt aangemaakt met docker network create proxy, daarna start de container jc21/nginx-proxy-manager met volumes voor data en certificaten. Ik vond het goed dat het beheerpaneel op poort 81 alleen aan 127.0.0.1 is gekoppeld en via een SSH-tunnel wordt benaderd.
Vervolgens wordt een proxyhost ingesteld: bij Forward Hostname komt de containernaam, en het SSL-certificaat wordt op het tabblad SSL gekoppeld. Voor de test wordt traefik/whoami gebruikt. Ook het geval dat de applicatie direct op de host draait, wordt apart behandeld: het gatewayadres van het Docker-netwerk haal je op met docker network inspect, en de firewall wordt zo ingesteld dat de applicatie niet om de proxy heen bereikbaar is.
Er zijn ook kanttekeningen. De voorbeelden mengen verschillende domeinen en de image gebruikt de tag latest, waardoor reproduceerbaarheid na verloop van tijd kan lijden. Toch is het een goed startpunt voor wie meerdere diensten thuis of op een VDS wil draaien zonder nginx-configs met de hand te bewerken.
Bron: Habr (Selectel-blog)
De auteur legt eerst het probleem uit: geprivilegieerde poorten, de regel dat een poort maar één listener heeft, CORS-problemen wanneer frontend en backend op aparte poorten draaien, en het ontbreken van HTTPS. Een reverse proxy lost dit op als tussenpersoon door het verkeer op domein en pad te routeren. Een extra voordeel is dat de firewall alleen poorten 22, 80 en 443 open hoeft te hebben.
De testopstelling is een VDS met 2 vCPU's, 2 GB RAM en 40 GB NVMe, met Ubuntu 24.04 en Docker uit de officiële repository. Het netwerk wordt aangemaakt met docker network create proxy, daarna start de container jc21/nginx-proxy-manager met volumes voor data en certificaten. Ik vond het goed dat het beheerpaneel op poort 81 alleen aan 127.0.0.1 is gekoppeld en via een SSH-tunnel wordt benaderd.
Vervolgens wordt een proxyhost ingesteld: bij Forward Hostname komt de containernaam, en het SSL-certificaat wordt op het tabblad SSL gekoppeld. Voor de test wordt traefik/whoami gebruikt. Ook het geval dat de applicatie direct op de host draait, wordt apart behandeld: het gatewayadres van het Docker-netwerk haal je op met docker network inspect, en de firewall wordt zo ingesteld dat de applicatie niet om de proxy heen bereikbaar is.
Er zijn ook kanttekeningen. De voorbeelden mengen verschillende domeinen en de image gebruikt de tag latest, waardoor reproduceerbaarheid na verloop van tijd kan lijden. Toch is het een goed startpunt voor wie meerdere diensten thuis of op een VDS wil draaien zonder nginx-configs met de hand te bewerken.
Bron: Habr (Selectel-blog)
Reacties 0
Plaats de eerste reactie, in elke taal.
Log in om te reageren