Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator etykiet Traefik

Routing i TLS dla usługi w docker-compose

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Uzupełnij dane i kliknij „Generuj etykiety”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator etykiet Traefik

Traefik to nowoczesny reverse proxy, który wykrywa usługi Dockera automatycznie na podstawie etykiet. Ten generator tworzy gotowy zestaw etykiet dla Twojej usługi — z routingiem po domenie i HTTPS.

Jak działają etykiety?

EtykietaRola
traefik.enablewłącza usługę w Traefiku
routers.NAME.rulereguła routingu, np. Host(`example.com`)
routers.NAME.entrypointsweb (HTTP) lub websecure (HTTPS)
routers.NAME.tls.certresolverautomatyczny certyfikat Let's Encrypt
services.NAME.loadbalancer.server.portport wewnątrz kontenera

Przykład użycia

Wklej wygenerowane etykiety do sekcji labels swojej usługi w docker-compose.yml. Upewnij się, że usługa jest w tej samej sieci Docker co Traefik.

Jak generator zamienia formularz na etykiety Traefika

Generator nie łączy się z Dockerem ani z Traefikiem. Działa jak deterministyczny konwerter: pobiera od Ciebie nazwę usługi, domenę, port wewnętrzny kontenera oraz decyzję o HTTPS, a następnie składa z tych danych zestaw par klucz-wartość w formacie akceptowanym przez providera Docker w Traefiku.

Mechanizm opiera się na konwencji nazw. Prefiks traefik.http.routers.NAME opisuje router, czyli regułę wejścia dla ruchu. Pole rule przyjmuje wyrażenie Host(`example.com`), które mówi Traefikowi, że żądania z tą domeną mają trafić do wskazanej usługi. Pole entrypoints decyduje, czy router słucha na wejściu HTTP (web), czy HTTPS (websecure).

Druga grupa etykiet dotyczy usługi i TLS. traefik.http.services.NAME.loadbalancer.server.port wskazuje port, na którym aplikacja nasłuchuje wewnątrz kontenera — to nie jest port publikowany na hoście. Gdy wybierzesz HTTPS, generator dodaje traefik.http.routers.NAME.tls.certresolver, który nakazuje Traefikowi wystawienie certyfikatu przez wskazany resolver, najczęściej Let's Encrypt. Nazwa resolvera musi istnieć w statycznej konfiguracji Traefika.

Przykład: Nginx na example.com z HTTPS

  1. W pliku docker-compose.yml masz usługę o nazwie web, która nasłuchuje w kontenerze na porcie 80 — to typowy Nginx.
  2. W generatorze wpisujesz domenę example.com, nazwę usługi web i port wewnętrzny 80.
  3. Zaznaczasz opcję HTTPS. Generator ustawia entrypoint na websecure i dodaje certresolver o nazwie letsencrypt.
  4. Otrzymujesz zestaw 5 etykiet: traefik.enable=true, traefik.http.routers.web.rule=Host(`example.com`), traefik.http.routers.web.entrypoints=websecure, traefik.http.routers.web.tls.certresolver=letsencrypt oraz traefik.http.services.web.loadbalancer.server.port=80.
  5. Wklejasz je do sekcji labels usługi web, upewniasz się, że Traefik i web są w tej samej sieci Docker, i uruchamiasz docker compose up -d.
  6. Traefik wykrywa kontener, tworzy router dla example.com i kieruje ruch z portu 443 na port 80 wewnątrz kontenera. Let's Encrypt weryfikuje domenę przez port 80 lub 443.

Tabela referencyjna: HTTP vs HTTPS

EtykietaWartość przy HTTPWartość przy HTTPS
traefik.enabletruetrue
traefik.http.routers.NAME.ruleHost(`example.com`)Host(`example.com`)
traefik.http.routers.NAME.entrypointswebwebsecure
traefik.http.routers.NAME.tls.certresolver— (pomijane)letsencrypt
traefik.http.services.NAME.loadbalancer.server.port8080

Praktyczne wskazówki przy wklejaniu etykiet

  • Trzymaj spójną nazwę — użyj tej samej nazwy routera i usługi co nazwa usługi w docker-compose. Dzięki temu etykiety routers.web i services.web są łatwe do znalezienia.
  • Nie publikuj portów aplikacji — przy Traefiku porty 80 i 443 wystawia się na kontenerze Traefika, a nie na usłudze backendu. Publikowanie portów zwykle nie jest potrzebne.
  • Podaj port wewnętrzny — w loadbalancer.server.port wpisz port nasłuchu w kontenerze, np. 80 dla Nginx. Nie wpisuj portu z hosta.
  • Sprawdź certresolver — nazwa w etykiecie musi być zgodna z resolverem w statycznej konfiguracji Traefika. Sam generator nie tworzy tej definicji.
  • Testuj etapami — najpierw uruchom usługę na entrypoincie web, a po potwierdzeniu, że routing działa, przełącz na websecure i dodaj certresolver.

Czego generator nie uwzględnia

  • Middleware — narzędzie nie dodaje przekierowań HTTP na HTTPS, nagłówków bezpieczeństwa, basic auth ani limitów. Te elementy trzeba dopisać ręcznie.
  • Wiele routerów i domen — generator tworzy jeden router dla jednej domeny. Dla wielu domen lub ścieżek potrzebna jest ręczna rozbudowa reguł.
  • Konfiguracja statyczna Traefika — narzędzie generuje tylko etykiety dynamiczne. Nie tworzy pliku traefik.yml, nie definiuje certresolvera ani entrypointów.
  • Walidacja DNS i sieci — nie sprawdza, czy domena wskazuje na serwer, czy Traefik widzi kontener w sieci Docker ani czy porty 80 i 443 są dostępne z zewnątrz.

Kiedy ten generator realnie się przydaje

  • Migracja z ręcznych plików konfiguracyjnych — gdy przenosisz kilka usług z Nginx Proxy Managera albo z dynamicznych plików Traefika na etykiety Dockera. Dla każdej usługi sprawdź wtedy, czy port wewnętrzny zgadza się z tym, na czym faktycznie nasłuchuje kontener, bo stare wpisy często dotyczyły innego obrazu.
  • Wystawianie narzędzi wewnętrznych na subdomenę — panel administracyjny, dashboard monitoringu, klient bazy w przeglądarce. Przed wklejeniem etykiet ustal, czy domena ma być widoczna publicznie, czy tylko w wewnętrznym DNS — generator nie dokłada żadnej autoryzacji ani nagłówków bezpieczeństwa.
  • Diagnoza błędu 502 przy działającym kontenerze — jeśli aplikacja odpowiada lokalnie, a Traefik zwraca 502, wygeneruj etykiety jeszcze raz i porównaj wartość loadbalancer.server.port z portem słuchanym w kontenerze. Rozbieżność w tym jednym miejscu tłumaczy większość takich przypadków.
  • Praca z wieloma środowiskami — staging i produkcja tej samej aplikacji. Wygeneruj zestaw raz, skopiuj blok labels do drugiej usługi i zmień domenę oraz nazwę routera, żeby klucze etykiet obu środowisk się nie nadpisywały.
  • Prototypowanie i code review — wynik wklejasz prosto do docker-compose.yml i commitujesz. Recenzent widzi wtedy od razu, jaka domena, jaki entrypoint i jaki port zostały podpięte do usługi, bez zaglądania do konfiguracji Traefika.

Najczęstsze błędy przy generowaniu etykiet

Pierwsze źródło problemów to składnia reguły routingu. Domena w wyrażeniu Host musi być otoczona odwrotnymi apostrofami — zwykłe cudzysłowy albo ich brak sprawiają, że Traefik odrzuca całe wyrażenie i router nie powstaje, więc żądanie nie trafia nigdzie. Równie często mylona jest nazwa obiektu: litera różnicy między routers.web a services.web tworzy dwa niezależne byty, z których jeden nie ma zdefiniowanego portu. Po restarcie warto zajrzeć do logów Traefika, bo błędy parsowania etykiet pojawiają się tam od razu i wskazują konkretny klucz.

Drugi obszar to samo wklejanie do pliku. Etykiety w docker-compose można zapisać jako listę albo jako mapę i wymieszanie obu stylów w jednej usłudze kończy się błędem parsera YAML, często jeszcze przed startem kontenera. Uważaj też na duplikaty — stara etykieta pozostawiona obok nowej o tym samym kluczu sprawia, że obowiązuje tylko jedna z nich i trudno zgadnąć która. Najprościej usuń poprzednie wpisy i wklej komplet wygenerowany dla danej usługi.

Najczęstsze pytania

Czym różni się port w etykiecie od portu w compose?

Port w etykiecie to port aplikacji wewnątrz kontenera (np. 80 dla Nginx), a nie port publikowany na hoście. Przy Traefiku zwykle nie publikuje się portów wcale.

Skąd Let's Encrypt wie o domenie?

Traefik odczytuje ją z reguły Host. Domena musi wskazywać na serwer, a Traefik musi mieć dostęp do portu 80 lub 443 do weryfikacji.

Co, gdy certyfikat się nie wystawia?

Najczęściej domena nie wskazuje na serwer, port jest zajęty lub brakuje konfiguracji certresolvera w statycznym pliku Traefika.

Czy generator Traefik sam podłącza się do Dockera?

Nie, to tylko formularz, który zwraca tekst etykiet. Nie łączy się z demonem Dockera ani nie sprawdza stanu kontenerów.

Jak nazwać router i usługę w etykietach Traefika?

Najlepiej tak samo jak usługę w docker-compose, np. web. Dzięki temu etykiety routers.web i services.web są spójne i łatwiejsze w utrzymaniu.

Czy Traefik wymaga wspólnej sieci Docker?

Tak, Traefik i aplikacja muszą być w tej samej sieci Docker. Inaczej Traefik nie zobaczy kontenera i nie utworzy routera.

Jak sprawdzić, czy etykiety działają?

Sprawdź logi Traefika oraz sekcję routers w dashboardzie. Powinien pojawić się router z regułą Host dla Twojej domeny.

Czy generator obsługuje wiele domen?

Nie, generuje regułę Host dla jednej domeny. Dla wielu domen trzeba rozbudować regułę ręcznie lub użyć osobnych routerów.

Czy mogę wygenerować etykiety dla kilku domen naraz?

Generator przygotowuje regułę dla jednej domeny. Jeśli potrzebujesz kolejnych, wygeneruj osobny zestaw i zmień nazwę routera, na przykład na web-alt, żeby klucze etykiet nie nadpisywały się nawzajem.

Czy zmiana etykiet wymaga restartu Traefika?

Nie. Provider Docker nasłuchuje zdarzeń, więc po ponownym uruchomieniu usługi Traefik odczyta nowe etykiety i przebuduje router. Warunkiem jest dostęp Traefika do demona Dockera.

Co oznacza 404, a co 502 przy routingu przez Traefika?

404 mówi, że żaden router nie pasuje do żądania — sprawdź regułę Host, entrypoint oraz obecność etykiety traefik.enable przy właściwej usłudze. 502 pojawia się później, gdy router już istnieje, ale nie potrafi połączyć się z portem wewnątrz kontenera.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!