Jak skonfigurować dostęp do środowiska konteneryzowanego za pomocą Nginx Proxy Manager na Linuxie
Wprowadzenie
W tym poradniku skonfigurujesz bezpieczny i przyjazny dla użytkownika dostęp do usług konteneryzowanych za pomocą Nginx Proxy Manager. To podejście upraszcza zarządzanie odwrotnym proxy poprzez interfejs webowy zamiast ręcznej konfiguracji. Zainstalujesz Nginx Proxy Manager z Dockerem, skonfigurujesz go i udostępnisz usługę konteneryzowaną przez domenę.
Wymagania wstępne
Docelowa grupa odbiorców: Początkujący administratorzy systemów
Szacowany czas: ~30 minut
Cel końcowy: Po zakończeniu tego poradnika będziesz mieć działającą konfigurację Nginx Proxy Manager, która kieruje ruch zewnętrzny do aplikacji konteneryzowanej.
Wymagania systemowe:
- OS: Dystrybucja Linux kompatybilna z Dockerem
- Docker: 24.0.6 lub nowszy
- Docker Compose: v2
- Minimum 1 GB RAM i 10 GB miejsca na dysku
- Nazwa domeny wskazująca na IP twojego serwera
- Otwarte porty: 80, 81, 443
- Uprawnienia sudo
Wymagana wiedza:
- Podstawowe korzystanie z linii poleceń Linux
- Podstawowe zrozumienie kontenerów Docker
Krok 1: Zrozumienie Nginx Proxy Manager
Nginx Proxy Manager to narzędzie oparte na sieci, które zarządza konfiguracjami odwrotnego proxy Nginx. Pozwala na kierowanie ruchu do różnych usług za pomocą nazw domen, włączanie certyfikatów SSL i zarządzanie zasadami dostępu bez ręcznej edycji plików konfiguracyjnych.
Kluczowe funkcje:
- Interfejs webowy do zarządzania proxy
- Automatyczne SSL przez Let's Encrypt
- Kontrola dostępu i uwierzytelnianie
- Łatwa integracja z środowiskami Docker
Wynik: Rozumiesz, jak Nginx Proxy Manager upraszcza udostępnianie usług konteneryzowanych.
Krok 2: Instalacja Docker i Docker Compose
Zainstaluj Docker za pomocą prostego polecenia:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Zweryfikuj instalację Docker:
docker --version
Zweryfikuj Docker Compose:
docker compose version
Wynik: Docker i Docker Compose są zainstalowane i gotowe do użycia.
Krok 3: Konfiguracja Nginx Proxy Manager
Utwórz katalog projektu:
mkdir ~/npm && cd ~/npm
Utwórz plik konfiguracyjny:
nano docker-compose.yml
Wstaw zawartość konfiguracji:
version: "3" services: app: image: jc21/nginx-proxy-manager:latest restart: always ports: - "80:80" - "81:81" - "443:443" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
Zapisz plik i wyjdź.
Uruchom usługę:
docker compose up -d
Wynik: Kontener Nginx Proxy Manager działa i nasłuchuje na wymaganych portach.
Krok 4: Dostęp do interfejsu webowego

Otwórz przeglądarkę i przejdź do: http://<TWÓJ_ADRES_IP>:81
Domyślne dane logowania:
- Email:
[email protected] - Hasło:
changeme
Zaktualizuj swoje dane logowania, gdy zostaniesz o to poproszony.
Wynik: Możesz uzyskać dostęp i zarządzać Nginx Proxy Manager przez interfejs webowy.
Krok 5: Wdrożenie kontenera testowego
Uruchom testowy kontener webowy:
docker run -d --name test-app -p 8080:80 nginx
Zweryfikuj dostęp, otwierając: http://<TWÓJ_ADRES_IP>:8080
Wynik: Kontener testowy działa i jest dostępny lokalnie.
Krok 6: Utworzenie hosta proxy

W interfejsie Nginx Proxy Manager:
- Kliknij "Proxy Hosts"
- Kliknij "Add Proxy Host"
- Wprowadź domenę:
<TWOJA_DOMENA> - Przekieruj nazwę hosta lub IP:
localhost - Przekieruj port:
8080 - Włącz "Block Common Exploits"
- Zapisz konfigurację
Wynik: Ruch z twojej domeny jest kierowany do kontenera.
Krok 7: Włącz SSL

Edytuj hosta proxy:
- Otwórz zakładkę SSL
- Wybierz Request a new SSL Certificate
- Włącz Force SSL
- Włącz HTTP/2 Support
- Wprowadź swój email i zaakceptuj warunki
- Zapisz zmiany
SSL wymaga poprawnych rekordów DNS wskazujących twoją domenę na twój serwer.
Wynik: HTTPS jest włączony i zabezpieczony ważnym certyfikatem.
Weryfikacja
Otwórz swoją domenę: https://<TWOJA_DOMENA>
Oczekiwane wyniki:
- Ładuje się strona testowa Nginx
- Przeglądarka pokazuje ważny certyfikat SSL
- Nie pojawiają się ostrzeżenia dotyczące bezpieczeństwa
Sprawdź działające kontenery:
docker ps
Wynik: Odwrotne proxy działa poprawnie i bezpiecznie kieruje ruch.
Cofanie zmian
Zatrzymaj usługi:
docker compose down
Usuń kontener testowy:
docker rm -f test-app
Usuń pliki projektu:
rm -rf ~/npm
Ważne: To usuwa wszystkie konfiguracje i certyfikaty SSL.
Wynik: Wszystkie zmiany są cofnięte, a system jest czysty.
Rozwiązywanie problemów
Problem: Nie można uzyskać dostępu do interfejsu webowego
Rozwiązanie: Upewnij się, że port 81 jest otwarty i nie jest używany przez inną usługę
Problem: Generowanie certyfikatu SSL nie powiodło się
Rozwiązanie: Zweryfikuj konfigurację DNS wskazującą na twój serwer
Problem: Host proxy nie działa
Rozwiązanie: Sprawdź status kontenera za pomocą docker ps i logi za pomocą docker logs <CONTAINER_ID>
Wynik: Typowe problemy są zidentyfikowane i rozwiązane.
Podsumowanie i kolejne kroki
Zainstalowałeś i skonfigurowałeś Nginx Proxy Manager za pomocą Dockera i udostępniłeś usługę konteneryzowaną z domeną i SSL. Ta konfiguracja zapewnia prosty i skalowalny sposób zarządzania wieloma usługami.
Kolejne kroki:
- Dodaj dodatkowe usługi za różnymi domenami
- Skonfiguruj listy kontroli dostępu
- Eksploruj zaawansowane ustawienia proxy i bezpieczeństwa