Traefik là một proxy ngược HTTP mã nguồn mở và bộ cân bằng tải giúp bạn triển khai các dịch vụ vi mô dễ dàng. Bạn có thể dễ dàng tích hợp nó với các thành phần cơ sở hạ tầng của mình bao gồm Docker, Kubernetes, Docker Swarm, Rancher, AWS và nhiều thành phần khác. Nếu bạn muốn chạy nhiều ứng dụng trên cùng một máy chủ Docker thì bạn có thể sử dụng Traefik làm proxy ngược để hiển thị các cổng 80 và 443 cho phần còn lại của thế giới.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Traefik làm proxy ngược trên CentOS 8.
Sau khi kho lưu trữ được tạo, hãy cài đặt Docker CE bằng lệnh sau:
Sau khi Docker được cài đặt, hãy khởi động dịch vụ Docker và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Để cài đặt Docker Compose, bạn sẽ cần cài đặt Curl và tải xuống tệp nhị phân Docker Compose trong hệ thống của mình. Bạn có thể thực hiện bằng lệnh sau:
Tiếp theo, xác minh mạng của bạn bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi cài đặt, hãy tạo mật khẩu được mã hóa bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy tạo tệp cấu hình Traefik mới bằng lệnh sau:
Thêm các dòng sau bao gồm tên miền hợp lệ, mật khẩu bảo mật và cổng của bạn:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tạo một tệp trống để lưu trữ thông tin Let’s Encrypt của bạn.
Tiếp theo, cấp quyền thích hợp cho tệp này bằng lệnh sau:
Bạn có thể tạo tệp này bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy xác minh container đang chạy bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Cung cấp tên người dùng là quản trị viên và mật khẩu mà bạn đã tạo trước đó và nhấp vào nút Đăng nhậpvào. Bạn sẽ thấy bảng điều khiển Traefik trong màn hình sau:
Nhấp vào tab SỨC KHỎE. Bạn sẽ thấy trạng thái sức khỏe của vùng chứa Traefik trong màn hình sau:
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Traefik làm proxy ngược trên CentOS 8.
Điều kiện tiên quyết
- Một máy chủ chạy CentOS 8.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình cho máy chủ.
Cài đặt Docker và Docker Compose
Trước tiên, bạn sẽ cần cài đặt phiên bản mới nhất của Docker và Docker Compose trong hệ thống của mình. Theo mặc định, Docker không khả dụng trong kho lưu trữ mặc định của CentOS 8. Vì vậy, bạn sẽ cần thêm kho lưu trữ Docker CE vào hệ thống của mình. Bạn có thể thêm nó bằng lệnh sau:
Mã:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Mã:
dnf install docker-ce --nobest -y
Mã:
systemctl start docker
systemctl enable docker
Mã:
dnf install curl
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Tạo mạng Docker
Tiếp theo, bạn sẽ cần tạo một mạng Docker mới để chạy container traefik. Bạn có thể tạo nó với tên "web" bằng cách chạy lệnh sau:
Mã:
docker network create web
Mã:
docker network ls
Mã:
NETWORK ID NAME DRIVER SCOPE76a9475e5ab0 bridge bridge local2a3d79f64747 host host local4c9123229eaa none null local0b6e010b43d0 web bridge local
Cài đặt và cấu hình Traefik Proxy
Trước khi bắt đầu, bạn sẽ cần cài đặt httpd-tools để tạo mật khẩu được mã hóa. Bạn có thể cài đặt công cụ này bằng lệnh sau:
Mã:
dnf install httpd-tools -y
Mã:
htpasswd -nb admin my_password
Mã:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Mã:
nano traefik.toml
Mã:
defaultEntryPoints = ["http", "https"][entryPoints] [entryPoints.dashboard] address = ":8080" [entryPoints.dashboard.auth] [entryPoints.dashboard.auth.basic] users = ["admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0"] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls][api]entrypoint="dashboard"[acme]email = "[emailprotected]"storage = "acme.json"entryPoint = "https"onHostRule = true [acme.httpChallenge] entryPoint = "http"[docker]domain = "traefik.linuxbuz.com"watch = truenetwork = "web"
Mã:
touch acme.json
Mã:
chmod 600 acme.json
Tạo tệp Docker Compose
Tiếp theo, bạn sẽ cần tạo tệp docker-compose.yml mới và xác định tên miền, cổng, mạng và ổ đĩa của mình.Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano docker-compose.yml
Mã:
version: '3'services: traefik: image: traefik:1.7.21-alpine command: --docker --docker.domain=linuxbuz.com ports: - 80:80 - 443:443 networks: - web volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json labels: - "traefik.frontend.rule=Host:traefik.linuxbuz.com" - "traefik.port=8080" container_name: traefik restart: alwaysnetworks: web: external: true
Xây dựng Traefik Docker Container
Tại thời điểm này, Traefik và Docker Tệp cấu hình Compose đã sẵn sàng. Bây giờ, hãy xây dựng container Traefik bằng lệnh sau:
Mã:
docker-compose up -d
Mã:
Không tìm thấy hình ảnh 'traefik:1.7.21-alpine' cục bộ1.7.21-alpine: Đang kéo từ thư viện/traefikc9b1b535fdd9: Đã kéo xongc141e361698e: Đã kéo xong2573c02b6f16: Đã kéo xong1619fb3841d1: Đã kéo xongDigest: sha256:0e4ac8ae724603898620dbd5eb9cda7ec05f405d25476eb0d32b716b490ba079Trạng thái: Đã tải xuống hình ảnh mới hơn cho traefik:1.7.21-alpine27e735357bb3b7d2d253ff78ddf6e78896851420eff399e8ade23affc7ff0bf7
Mã:
docker ps
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES7604696507a5 traefik:1.7.21-alpine "/entrypoint.sh --do…" 6 giây trước Lên 4 giây 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp traefik
Truy cập Giao diện web Traefik
Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web Traefik bằng URL https://traefik.linuxbuz.com. Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu:Cung cấp tên người dùng là quản trị viên và mật khẩu mà bạn đã tạo trước đó và nhấp vào nút Đăng nhậpvào. Bạn sẽ thấy bảng điều khiển Traefik trong màn hình sau:
Nhấp vào tab SỨC KHỎE. Bạn sẽ thấy trạng thái sức khỏe của vùng chứa Traefik trong màn hình sau: