Homelab i self-hosting

Kilka usług za jednym serwerem dzięki Nginx Proxy Manager

Jeśli na jednym serwerze działa więcej niż jeden projekt, prędzej czy później trafia się na porty 80 i 443, na których może nasłuchiwać tylko jeden proces. Artykuł na Habr z bloga Selectel krok po kroku pokazuje, jak rozwiązać to za pomocą Nginx Proxy Manager.

Autor najpierw wyjaśnia problem: porty uprzywilejowane, zasadę jednego nasłuchiwacza na port, problemy z CORS, gdy frontend i backend są rozdzielone portami, oraz brak HTTPS. Odwrotny proxy rozwiązuje to jako pośrednik, kierując ruch według domeny i ścieżki. Dodatkowa zaleta: zapora potrzebuje tylko otwartych portów 22, 80 i 443.

Środowisko testowe to VDS z 2 vCPU, 2 GB RAM i 40 GB NVMe, z Ubuntu 24.04 i Dockerem z oficjalnego repozytorium. Sieć tworzy się poleceniem docker network create proxy, a następnie uruchamia kontener jc21/nginx-proxy-manager z woluminami na dane i certyfikaty. Spodobało mi się, że panel administracyjny na porcie 81 jest powiązany tylko z 127.0.0.1 i dostępny przez tunel SSH.

Następnie konfiguruje się host proxy: w polu Forward Hostname wpisuje się nazwę kontenera, a certyfikat SSL przypisuje na karcie SSL. Do testów używany jest traefik/whoami. Osobno omówiono przypadek, w którym aplikacja działa bezpośrednio na hoście: adres bramy sieci Dockera uzyskuje się poleceniem docker network inspect, a zaporę ustawia się tak, by nie dało się dotrzeć do aplikacji z pominięciem proxy.

Są też uwagi. Przykłady mieszają różne domeny, a obraz używa tagu latest, co z czasem może pogorszyć powtarzalność. Mimo to to dobry punkt wyjścia dla tych, którzy chcą uruchomić kilka usług w domu lub na VDS bez ręcznej edycji konfiguracji nginx.

Źródło: Habr (blog Selectel)

Komentarze 0

Dodaj pierwszy komentarz, w dowolnym języku.

Zaloguj się, aby komentować