Publication date:
10/29/24
Konfiguracja reverse proxy z cloudflare
Konfiguracja Reverse Proxy z Cloudflare i Nginx Proxy / acme-companion
Wprowadzenie
Reverse proxy to serwer, który działa jako pośrednik między klientem a serwerem aplikacyjnym, przekazując żądania HTTP/S do odpowiednich usług. Dzięki temu rozwiązaniu można łatwo zarządzać certyfikatami SSL, korzystać z wydajnościowych zalet Cloudflare, a także zwiększyć bezpieczeństwo aplikacji. W tym przewodniku skonfigurujemy reverse proxy z Cloudflare, Nginx Proxy i acme-companion do automatycznego odnawiania certyfikatów SSL.
Wymagania wstępne
Konto Cloudflare: Skonfiguruj domenę w Cloudflare i ustaw ją na tryb Proxy.
Serwer z Docker i Docker Compose: Na potrzeby tego przewodnika skorzystamy z Docker Compose, aby łatwo uruchomić Nginx Proxy oraz acme-companion.
Krok 1: Ustawienia DNS w Cloudflare
Zaloguj się na swoje konto w Cloudflare i przejdź do ustawień swojej domeny.
W zakładce DNS dodaj rekordy A (lub CNAME) wskazujące na IP Twojego serwera, a następnie ustaw je w trybie Proxy (pomarańczowa chmurka).
W SSL/TLS wybierz opcję Full (strict) – ta konfiguracja będzie wymagała certyfikatu SSL na serwerze, który będziemy automatycznie odnawiać dzięki acme-companion.
Krok 2: Tworzenie pliku .env
Stwórz plik .env w katalogu projektu, aby przechowywać poufne dane, acme-companion użyje tych danych do automatycznego odnawiania certyfikatów SSL.
Krok 3: Konfiguracja Docker Compose
Użyjemy Nginx Proxy wraz z acme-companion, aby obsługiwać automatyczne odnawianie certyfikatów SSL i przekierowanie ruchu przez reverse proxy.
Plik docker-comose.yml
Wyjaśnienie konfiguracji
nginx-proxy: To główny kontener reverse proxy, który nasłuchuje na portach 80 i 443 i przekierowuje ruch do odpowiednich usług na podstawie nazw domen.
acme-companion: Kontener odpowiedzialny za automatyczne odnawianie certyfikatów SSL. Korzysta z danych Cloudflare, aby weryfikować certyfikaty za pomocą DNS-01.
Volumes: Montowane są pliki i katalogi, aby zapewnić prawidłowe działanie Nginx Proxy oraz przechowywać certyfikaty SSL.
Krok 4: Tworzenie i uruchamianie sieci Docker
Utwórz zewnętrzną sieć Docker, aby usługi mogły współdzielić sieć:
Krok 5: Uruchomienie kontenerów
Po uruchomieniu kontenerów Nginx Proxy powinien automatycznie nasłuchiwać na portach 80 i 443. acme-companion będzie dbał o to, aby certyfikaty SSL były odnawiane automatycznie przez Cloudflare.
Krok 6: Dodanie Usług do Reverse Proxy
Aby dodać nową usługę do reverse proxy, użyj poniższej konfiguracji docker-compose.yml dla każdej usługi, którą chcesz przekierować przez Nginx Proxy:
Po dodaniu takiej konfiguracji i uruchomieniu usługi, Nginx Proxy automatycznie przekieruje ruch na my-service-domain.com do odpowiedniego kontenera, a acme-companion wygeneruje certyfikat SSL.
Krok 7: Testowanie i weryfikacja
Sprawdź certyfikaty SSL: Upewnij się, że certyfikaty zostały poprawnie zainstalowane i są aktywne. Możesz to sprawdzić, wchodząc na swoją domenę w przeglądarce i sprawdzając, czy połączenie jest bezpieczne (ikona kłódki).
Monitorowanie odnowienia certyfikatów: acme-companion automatycznie odnawia certyfikaty. W logach kontenera możesz śledzić informacje o procesie odnawiania.
Podsumowanie
Dzięki konfiguracji reverse proxy z Cloudflare, Nginx Proxy i acme-companion możemy:
Zwiększyć bezpieczeństwo: Połączenia HTTPS przez Cloudflare oraz automatyczne certyfikaty SSL.
Uprościć zarządzanie certyfikatami SSL: acme-companion automatycznie odnawia certyfikaty za pomocą DNS-01.
Zwiększyć wydajność: CDN Cloudflare przyspiesza ładowanie zasobów globalnie, zmniejszając obciążenie serwera.