Traefik là một HTTP reverse proxy hiện đại, hỗ trợ nhiều tính năng giúp triển khai dự án dễ dàng hơn.

Một trong số đó là forward đường dẫn và redirect http sang https.

Hướng dẫn này dành cho việc triển khai ứng dụng trong chế độ Swarm, trong môi trường docker thông thường, traefik cũng hỗ trợ tương tự các tính năng. Xem thêm tại https://traefik.io

Forward 

Để chuyển tiếp sang 1 ứng dụng Nginx từ cổng (80) của traefik, cần cấu hình 1 file docker-compose và 1 file traefik.toml như sau:

File YML

  • Cổng mặc định của Traefik là 80, cổng 8080 dùng export cổng dashboard, cho phép theo dõi việc traefik quản lý ứng dụng qua giao diện web.
  • Label "traefil.frontend.rule=PathPrefixStrip:/nginx" cho phép kết nối tới service nginx thông qua cổng 80 của traefik .
  • Label "traefik.docker.network=traefik" cho biết mạng mà traefik sẽ dùng để kết nối tới service.
  • Label "traefik.port=80" là port xử lý của service nginx, với caddy mặc định là 2015, hay ghost là 2368
  • Label "traefik.enable=true" để cho phép container hoạt động với traefik

File TOML

  • Khối "docker" để thông báo ứng dụng chạy trên docker
  • Khối web để mở cổng dashboard
  • Option swarmmode=true để kích hoạt chế độ swarm
  • Option exposedbydefault để vô hiệu hóa việc expose mọi service, chỉ expose các service có label "traefik.enable=true".

 

Deploy

Tạo 1 mạng riêng cho ứng dụng

Triển khai docker compose

Kết quả

REDIRECT HTTPS

File YML

  • Có thêm Secrets nếu bạn muốn sử dụng TLS certificate hoặc SSL (tùy chọn)

File TOML

  • Khối "entryPoints.http.redirect" để thực hiện chuyển http sang https theo ý muốn
  • Khối "entryPoints.https.tls" khi muốn sử dụng TLS certificate hoặc SSL (tùy chọn)

 

Kết quả 

Chú thích: https bị gạch đỏ do không sử dụng certificate TLS certificate hoặc SSL