Cách cài đặt và sử dụng Traefik như một Proxy ngược với Docker trên CentOS 8

theanh

Administrator
Nhân viên
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.

Đ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
Sau khi kho lưu trữ được tạo, hãy cài đặt Docker CE bằng lệnh sau:
Mã:
dnf install docker-ce --nobest -y
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:
Mã:
systemctl start docker
systemctl enable docker
Để 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:
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
Tiếp theo, xác minh mạng của bạn bằng lệnh sau:
Mã:
docker network ls
Bạn sẽ nhận được kết quả sau:
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
Sau khi cài đặt, hãy tạo mật khẩu được mã hóa bằng lệnh sau:
Mã:
htpasswd -nb admin my_password
Bạn sẽ nhận được kết quả sau:
Mã:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Tiếp theo, hãy tạo tệp cấu hình Traefik mới bằng lệnh sau:
Mã:
nano traefik.toml
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:
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"
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.
Mã:
touch acme.json
Tiếp theo, cấp quyền thích hợp cho tệp này bằng lệnh sau:
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
Thêm các dòng sau:
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
Lưu và đóng tệp khi bạn hoàn tất.

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
Bạn sẽ nhận được kết quả sau:
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
Tiếp theo, hãy xác minh container đang chạy bằng lệnh sau:
Mã:
docker ps
Bạn sẽ nhận được kết quả sau:
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:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công proxy Traefik trên CentOS 8. Để biết thêm thông tin, hãy truy cập tài liệu Traefik.
 
Back
Bên trên