Je kunt je server snel nieuwe mogelijkheden geven met dockercontainers. Maar als je niet alle diensten wilt dockeren, kun je een kant-en-klare containerimage gebruiken voor een Nginx-reverse-proxy en het automatisch verkrijgen van certificaten bij Let’s Encrypt. We laten zien hoe je die twee dingen zo instelt dat je er amper nog werk aan hebt.
Docker is leuk. De containerimages nemen je best wat werk uit handen en maken het mogelijk om veel sneller nieuwe webdiensten uit te proberen – en die ook net zo snel en zonder achterblijvende restanten weer te verwijderen. Als je tegenwoordig een root- of een V-server hebt, wil je eigenlijk niet zonder. Maar vaak draaien op die server nog talrijke andere diensten uit een tijd van voor docker. Die zijn toen zorgvuldig handmatig geconfigureerd en jarenlang onderhouden. Al die diensten zijn in een container te zetten, maar daar moet je dan eigen images voor maken. Dat kan voor een enkele dienst al meerdere uren werk gaan betekenen.
Je eigen server kun je meestal dan ook niet in een slag dockeren, zelfs niet als je daar het hele weekend voor inruimt. Docker is echter snel geïnstalleerd en de eerste container draait al na een paar minuten. Die container komt echter niet aan poort 80 of 443 omdat die twee nog door een webserver gebruikt worden, bijvoorbeeld Nginx. Nginx levert nog andere diensten die niet in een container draaien. De bestaande container met Nginx-proxy en Let’s-Encrypt-automatisering kan de handmatig geïnstalleerde Nginx niet vervangen omdat dat alle diensten buiten de containers zou deactiveren. Je kunt dan Nginx als reverse-proxy gaan gebruiken en een ACME-client voor Let’s Encrypt installeren. De reverse-proxy neemt alle requests van buitenaf voor zijn rekening en verdeelt die over de andere web- of CGI-servers.