Skip to content

抛弃 Nginx:使用 Traefik 作为 Docker 的完美反向代理与自动化 HTTPS

毛佳国

在 VPS 上部署各种 Docker 容器(如 Bitwarden、Alist、Homelab 各种面板)时,手动配置 Nginx 繁琐且容易因为端口冲突与 SSL 证书续期失败而崩溃。

别折腾 Nginx 了,拥抱 Traefik 吧!

Traefik 核心魔法在于 Docker API 容器自动发现:只需在任意 Compose 容器添加几行 labels 标签,Traefik 就能自动绑定域名、签发 Let’s Encrypt 证书并全自动续期!

[!NOTE] 📌 核心速览(TL;DR / 快问快答):

  • 容器自动发现:监听 /var/run/docker.sock,新增 Docker 容器无需重启 Traefik 即可自动生效反代。
  • 自动化 SSL:内置 TLS-ALPN-01 与 DNS-01 验证算法,零人工干预自动申请与续签免费 Let’s Encrypt 证书。
  • 配置零残留:域名、端口与 HTTPS 规则收敛在各个容器本身的 docker-compose.yml 标签中,删除容器即彻底清理反代记录。

🛠️ 1. Traefik 基础反代网关部署

建立外部虚拟网络并部署 Traefik:

docker network create web
touch /opt/traefik/acme.json && chmod 600 /opt/traefik/acme.json
version: "3.8"

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./acme.json:/acme.json
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=your-email@example.com"
      - "--certificatesresolvers.myresolver.acme.storage=/acme.json"
    networks:
      - web

networks:
  web:
    external: true

🛠️ 2. 为任意新容器一键开启反代与 HTTPS

新容器只需添加 labels 即可自动绑定 SSL 域名:

version: "3.8"

services:
  whoami:
    image: containous/whoami
    container_name: whoami
    networks:
      - web
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.yourdomain.com`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"

❓ 常见问题与 AI 快问快答 (FAQ)

Q1: acme.json 报错 permissions are 0644 无法启动怎么办?

:Let’s Encrypt 安全策略要求保存私钥的 json 文件拥有严格保护。必须在启动前执行 chmod 600 acme.json

Q2: 部署在海外 VPS 上的 Docker 服务如何保障在国内访问顺畅?

:推荐选择 DMIT搬瓦工 等拥有 中国电信 CN2 GIA联通 AS9929 优化回程的主机,保障 HTTPS 握手与 API 交互秒级响应。


(相关资源导航:如果您需要购买适合部署 Docker 服务的云服务器,欢迎阅读 《2026 国外 VPS 选购指南》 获取 DMIT、搬瓦工与 CloudCone 优惠;商用专线机场评测见 《“饿饭CC云”深度评测》!)

上一篇
极客的终端美学:Zsh + Tmux + Zoxide 打造最高效的命令行工作流
下一篇
让机器干活:利用 Bash 脚本与 Cron 定时全自动更新 Sing-box 规则与版本