Cady部署教程
Caddy 是一个强大的、自动化的 Web 服务器,以其自动 HTTPS 功能而闻名。相比 Nginx,它配置更简单,非常适合部署静态网站或作为反向代理。使用 Docker 部署 Caddy 能够让你利用其所有优点,并且保持环境的干净和可移植性。
1. 安装 Docker
首先,你需要确保你的系统上已经安装了 Docker。如果你还没有安装,可以访问 Docker安装教程,根据你的操作系统找到对应的安装指南并进行安装。
2. 拉取 Caddy 镜像
我们将从 Docker Hub 上拉取官方的 Caddy 镜像。打开终端或命令提示符,运行以下命令:
Bash
1 | |
3. 部署一个基本静态网站
Caddy 的一个核心优势是它的简洁性。要部署一个静态网站,你只需要一个简单的配置文件和一个网站目录。
准备文件
在你的本地文件系统中,创建一个目录来存放你的网站内容和 Caddy 配置文件,比如 ~/caddy_website。
1 | |
在 ~/caddy_website/html 目录下,创建一个 index.html 文件:
1 | |
接下来,创建一个 Caddy 的配置文件,通常命名为 Caddyfile。在 ~/caddy_website/ 目录下创建一个名为 Caddyfile 的文件,并添加以下内容:
代码段
1 | |
这个 Caddyfile 文件的意思是:
:80:Caddy 将监听 80 端口。root * /usr/share/caddy/html:设置网站的根目录为容器内部的/usr/share/caddy/html。file_server:启用静态文件服务,这意味着 Caddy 会自动处理对文件的请求。
运行 Caddy 容器
现在,我们将把这些本地目录映射到 Caddy 容器中,并运行它。
1 | |
--name my-caddy-site:为容器指定一个名称。-p 80:80:将宿主机的 80 端口映射到容器的 80 端口。-v ~/caddy_website/html:/usr/share/caddy/html:将本地的html目录映射到 Caddy 容器中默认的网站根目录。-v ~/caddy_website/Caddyfile:/etc/caddy/Caddyfile:将本地的Caddyfile配置文件映射到容器中 Caddy 的配置目录。
容器成功运行后,你可以在浏览器中访问 http://localhost,你将看到你自定义的 index.html 页面。
4. 部署反向代理和自动 HTTPS
这是 Caddy 最强大的功能。你只需几行配置,就可以让 Caddy 为你的域名自动获取、管理和续订 SSL/TLS 证书。
准备文件
假设你有一个域名,例如 your-domain.com,并且你想要将请求代理到运行在 localhost:3000 的后端服务。
修改你的 Caddyfile 文件,添加以下内容:
代码段
1 | |
your-domain.com:这是你的域名。Caddy 会自动为这个域名申请和配置 HTTPS 证书。reverse_proxy localhost:3000:这行配置将所有指向your-domain.com的请求转发到本地的 3000 端口。
运行容器
由于 Caddy 需要访问 80 和 443 端口来获取证书,并且需要一个持久化的卷来存储证书数据,我们需要修改运行命令。
1 | |
-p 80:80 -p 443:443:映射 HTTP 和 HTTPS 的标准端口。-v caddy_data:/data:创建一个 Docker 数据卷来持久化存储证书、日志等重要数据。这可以确保即使容器重启或删除,你的证书也不会丢失。
现在,当你将你的域名 DNS 解析到你的服务器 IP 地址,并访问 https://your-domain.com 时,Caddy 会自动为你处理证书、HTTPS 和反向代理。
5. 管理和维护
查看运行中的容器:
1
docker ps停止容器:
1
docker stop caddy-proxy启动已停止的容器:
1
docker start caddy-proxy删除容器:
1
docker rm caddy-proxy删除镜像:
1
docker rmi caddy
通过以上步骤,你就可以轻松地使用 Docker 部署 Caddy,无论是作为静态文件服务器还是强大的反向代理。