Generator Traefik config
Dynamiczna konfiguracja reverse proxy Traefik
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator konfiguracji Traefik
Traefik to nowoczesny reverse proxy dla kontenerów i Kubernetes. Automatycznie wykrywa usługi i potrafi samodzielnie pozyskiwać certyfikaty HTTPS.
Struktura konfiguracji
| Element | Rola |
|---|---|
| routers | reguły kierowania ruchu (np. Host) |
| entryPoints | punkty wejścia (web, websecure) |
| services | adresy serwerów backendu |
| tls.certResolver | automatyczne certyfikaty (ACME) |
Przykład
Router app z regułą Host(`example.com`) kieruje ruch na http://localhost:3000. CertResolver letsencrypt odpowiada za certyfikat TLS.
Provider file
Wygenerowany plik to konfiguracja dynamiczna. Wskaż katalog w konfiguracji statycznej Traefika: providers.file.directory=/etc/traefik/dynamic. Traefik przeładuje zmiany automatycznie.
Jak działa generator konfiguracji Traefika
Generator zamienia dane z formularza na konfigurację dynamiczną Traefika w układzie trzech warstw: router, service i serwer backendu. Router odpowiada za dopasowanie żądania — zawiera regułę, listę entryPointów oraz wskazanie usługi, do której ruch ma trafić. Service opisuje sposób dotarcia do backendu i w najprostszym wariancie jest load balancerem z listą adresów URL serwerów. Każde pole z formularza trafia więc do konkretnego klucza w pliku: nazwa routera do http.routers.NAZWA, adres backendu do http.services.NAZWA.loadBalancer.servers[].url.
Kluczowym elementem jest reguła. Traefik używa własnego języka wyrażeń: Host(`api.example.com`) porównuje domenę z nagłówka Host, PathPrefix(`/v1`) sprawdza początek ścieżki, a operator && łączy warunki. Router działa tylko na tych entryPointach, które wskażesz — jeśli pominiesz to pole, Traefik sięgnie po wartości domyślne z konfiguracji statycznej. Żądanie, które nie pasuje do żadnej reguły, kończy się odpowiedzią 404, bo nie ma routera, który by je obsłużył.
Druga warstwa to service. Gdy podasz kilka adresów w jednym loadBalancerze, Traefik rozdziela między nie ruch — przy równych wagach statystycznie po połowie. Dopiero na routerze ustawiasz tls.certResolver; od tego momentu certyfikat dla domeny z reguły pozyskuje wskazany resolver ACME. Sam plik jest wyłącznie deklaracją: Traefik wczytuje go z katalogu wskazanego w providerze file i przeładowuje po zmianie treści, bez restartu procesu.
Przykład krok po kroku: API na dwóch portach
- Przyjmij, że aplikacja API działa lokalnie na dwóch portach: 8080 i 8081. To dwa procesy tego samego kodu, gotowe przyjmować ruch równolegle.
- Nazwij router api i wpisz regułę: Host(`api.example.com`) && PathPrefix(`/v1`). Warunek przepuści tylko żądania do domeny api.example.com, których ścieżka zaczyna się od /v1.
- Zaznacz dwa entryPointy: web oraz websecure. Router będzie więc dostępny zarówno po HTTP, jak i po HTTPS.
- Utwórz service o nazwie api-svc i dodaj dwa serwery: http://127.0.0.1:8080 oraz http://127.0.0.1:8081. Liczba serwerów wynosi 2, a przy równych wagach każdy z nich obsłuży około 50% żądań.
- Na routerze ustaw tls.certResolver na letsencrypt. Certyfikat zostanie wystawiony dla api.example.com, bo ta domena występuje w regule.
- Zapisz wynik jako plik api.yml w katalogu konfiguracji dynamicznej. Podsumowanie: 1 router, 1 service, 2 serwery, 2 entryPointy i 1 resolver ACME.
Mapowanie pól formularza na klucze konfiguracji
| Pole w narzędziu | Klucz w pliku | Przykładowa wartość |
|---|---|---|
| Nazwa routera | http.routers.<nazwa> | api |
| Reguła routingu | http.routers.<nazwa>.rule | Host(`api.example.com`) |
| EntryPointy | http.routers.<nazwa>.entryPoints | web, websecure |
| Wskazanie usługi | http.routers.<nazwa>.service | api-svc |
| Resolver certyfikatów | http.routers.<nazwa>.tls.certResolver | letsencrypt |
| Nazwa usługi | http.services.<nazwa> | api-svc |
| Adres serwera | http.services.<nazwa>.loadBalancer.servers[].url | http://127.0.0.1:8080 |
Praktyczne wskazówki
- Trzymaj spójne nazwy — nazwy routerów i usług nie mogą się powtarzać w obrębie jednego pliku. Jeśli w katalogu dynamicznym leży kilka plików, Traefik scala je i duplikat klucza zgłosi jako błąd.
- Zaczynaj od jednego routera — drugą regułę dopisz dopiero, gdy pierwsza działa. Dwa routery z nachodzącymi się regułami na tym samym entryPoincie rozstrzyga priorytet, a nie kolejność zapisu w pliku.
- Adresy serwerów zapisuj z protokołem — http://127.0.0.1:8080 jest poprawne, samo 127.0.0.1:8080 już nie, bo Traefik nie zgadnie schematu połączenia.
- Testuj najpierw po HTTP — zanim dodasz TLS, sprawdź sam routing. Odpowiedź 404 oznacza brak dopasowania reguły, a 502 — że dopasowanie jest, ale backend nie odpowiada.
- Nawiasy w złożonych regułach — przy łączeniu trzech i więcej warunków operatorem && warto rozdzielić je nawiasami, żeby uniknąć błędnej interpretacji wyrażenia.
Czego narzędzie nie uwzględnia
- Konfiguracji statycznej — generator tworzy wyłącznie plik dynamiczny. Definicje entryPointów, adres panelu API i ustawienia providera file muszą istnieć w pliku statycznym; bez nich wygenerowana konfiguracja nie zadziała.
- Middleware i przekierowań — basic auth, limity tempa, nagłówki bezpieczeństwa i przekierowanie HTTP na HTTPS dodaje się jako osobne obiekty i podłącza do routera. Narzędzie ich nie generuje.
- DNS i dostępności ACME — narzędzie nie sprawdzi, czy domena wskazuje na serwer ani czy porty 80 i 443 są osiągalne z internetu. Bez tego resolver ACME nie wystawi certyfikatu.
- Wag i health checków — load balancer obsługuje wagi serwerów i sprawdzanie ich kondycji, ale te pola trzeba dopisać ręcznie do wygenerowanego szkieletu.
Najczęstsze pytania
Czym jest provider Docker?
Zamiast pliku można opisać routery etykietami kontenera. Traefik sam wykrywa kontenery i aktualizuje konfigurację.
Skąd certyfikaty TLS?
Z resolvera ACME (np. Let's Encrypt). Wymaga publicznie dostępnej domeny wskazującej na serwer Traefika.
Co to middleware?
Dodatkowe przetwarzanie ruchu: przekierowania, basic auth, ograniczanie tempa, nagłówki bezpieczeństwa.
Czy Traefik przeładuje plik automatycznie po zapisaniu zmian?
Tak, provider file obserwuje katalog i wczytuje zmiany w locie, bez restartu. Jeśli jednak plik ma błąd składni, Traefik odrzuci całą zmianę i pozostanie przy poprzedniej konfiguracji.
Dlaczego mój router zwraca 404?
Najczęściej reguła nie pasuje do żądania albo router nie jest przypisany do entryPointu, na którym przyszło połączenie. Sprawdź domenę i ścieżkę w regule oraz listę entryPointów.
Czy kilka routerów może wskazywać na jedną usługę?
Tak. Możesz mieć osobny router dla /v1 i /v2, a oba mają w polu service tę samą nazwę usługi. Każdy router zachowuje wtedy własną regułę i własny priorytet.
Czym różni się Host od HostRegexp?
Host dopasowuje dokładną nazwę domeny, a HostRegexp — wyrażenie regularne. Host jest czytelniejszy i wystarcza w większości przypadków; HostRegexp przydaje się przy subdomenach generowanych dynamicznie.
Po co rozdzielać entryPointy web i websecure?
web obsługuje ruch po HTTP, a websecure po HTTPS. Rozdzielenie pozwala kierować całość z web na websecure i podłączać certyfikaty tylko do tego drugiego punktu wejścia.