【有趣好玩的Docker项目-Docker Compose部署】Caddy 统一反向代理服务【caddy】

适用于在 VPS 上部署 Caddy 作为统一反向代理入口,配合 Docker Compose、模块化配置结构、自动 HTTPS 证书管理等最佳实践。

# Caddy 统一反向代理部署指南(Docker Compose 模板)

本项目用于在 VPS 上部署 Caddy,作为所有服务的统一入口,支持自动 HTTPS、模块化配置、反代多个容器服务(如 Portainer、Yacht、WordPress、Typecho 等)。目录结构清晰,适合长期维护和扩展。

## 📁 项目结构

/opt/docker-stack/

├── caddy/

├── compose.yaml # Docker Compose 主配置文件

├── Caddyfile # 主 Caddy 配置文件(引用子配置)

├── conf.d/ # 每个服务一个子配置文件

│ ├── portainer.caddy

│ ├── yacht.caddy

│ └── typecho.caddy

├── data/

├── certs-caddy/ # 自动 HTTPS 证书存储目录

└── config/ # Caddy 内部状态缓存

代码

## 🚀 安装步骤

### 1. 创建网络(供 Caddy 与其他容器通信)

“`bash

docker network create caddy_net

2. 编写 compose.yaml

yaml

version: “3.8”

services:

  caddy:

    image: caddy:latest

    container_name: caddy

    restart: unless-stopped

    ports:

      – “80:80”

      – “443:443”

    volumes:

      – ./Caddyfile:/etc/caddy/Caddyfile

      – ./conf.d:/etc/caddy/conf.d

      – ./data/certs-caddy:/data

      – ./data/config:/config

      – /var/run/docker.sock:/var/run/docker.sock  # 可选:用于自动服务发现

    networks:

      – caddy_net

networks:

  caddy_net:

    external: true

3. 编写主 Caddyfile

caddyfile

# 导入所有 conf.d 子配置文件

import /etc/caddy/conf.d/*.caddy

4. 编写子配置文件(示例)

conf.d/portainer.caddy

caddyfile

portainer.example.com {

    reverse_proxy portainer:9000

}

conf.d/typecho.caddy

caddyfile

blog.example.com {

    root * /var/www/html

    php_fastcgi typecho:9000

    file_server

    encode gzip

    rewrite * /index.php

}

✅ 启动服务

bash

cd /opt/docker-stack/caddy

docker compose up -d

🔐 HTTPS 证书说明

所有证书自动存储在 data/certs-caddy/ 目录下,由 Caddy 自动申请和续签(使用 Let’s Encrypt)。

不建议手动修改该目录内容。

若需迁移或备份,请保留该目录以避免重新申请证书。

🧠 config 目录说明

data/config/ 用于存储 Caddy 的运行状态、配置缓存等。

若使用 Caddy API 动态配置,该目录会自动更新。

静态配置用户可忽略该目录,但仍建议保留。

🧩 服务接入建议

所有服务(如 Portainer、Yacht、WordPress)需加入 caddy_net 网络。

在各自的 Compose 文件中添加:

yaml

networks:

  – caddy_net

📖 参考文档

Caddy 官方文档

Docker Compose 官方文档

Caddy Docker 镜像说明

🎯 总结

Caddy 是现代、高性能的反向代理服务器,支持自动 HTTPS 和模块化配置。

本模板结构清晰,适合长期维护和多服务扩展。

推荐配合 Portainer/Yacht 做容器管理,Prometheus/Grafana 做监控,实现完整替代 1Panel 的架构。

评论

  1. GeorgeHopsy
    2 月前
    2025-11-23 20:34:26

    Ola, quería saber o seu prezo.

    • 博主
      GeorgeHopsy
      2 月前
      2025-11-26 8:10:57

      Non entendo moi ben o que dis.

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇