Caddy 部署实操指南:Windows 环境下从入门到高级配置
|
admin
2025年8月13日 10:57
本文热度 83
|

一、引言
Caddy 是一款现代化的 Web 服务器,以极简的配置和自动 HTTPS 特性著称。本文将结合实际操作,详细介绍在 Windows 系统中使用 Caddy 部署网站的全流程,涵盖安装、配置、证书申请及常见问题解决,帮助开发者快速上手。
二、Caddy 安装与基础配置
2.1 安装 Caddy
方法一:使用 Chocolatey 包管理器(推荐)
以管理员身份打开 PowerShell,执行以下命令安装 Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
安装 Caddy:
验证安装:
方法二:手动安装
从 Caddy 官网 下载 Windows 64 位 ZIP 包,解压后将 caddy.exe
移动至 C:\Caddy
目录。
将 C:\Caddy
添加到系统环境变量 Path
中。
2.2 创建首个网站
创建网站根目录 C:\Website
,并在其中添加 index.html
:
<h1>Hello from Caddy!</h1>
在桌面创建 Caddyfile
(无扩展名),输入以下内容:
localhost {
root * C:\Website
file_server
}
启动 Caddy:
caddy run --config "$env:USERPROFILE\Desktop\Caddyfile"
访问 http://localhost
,应看到网页内容。
三、HTTPS 配置与证书自动申请
3.1 自动获取 Let's Encrypt 证书
默认情况下,Caddy 会自动为域名申请 Let's Encrypt 证书。修改 Caddyfile
为真实域名:
www.sdyzco.com.cn {
root * C:\Website
file_server
tls wh@sdyzco.com.cn # 填写邮箱用于证书管理
}
重启 Caddy 后,访问 https://www.sdyzco.com.cn
,浏览器会显示安全锁标志。
3.2 处理 80 端口被占用问题
若 80 端口被其他服务占用,可仅使用 443 端口(TLS-ALPN-01 验证):
www.sdyzco.com.cn {
root * C:\Website
file_server
tls wh@sdyzco.com.cn
http_port 0 # 禁用 80 端口
}
3.3 使用阿里云 DNS 验证(高级场景)
当服务器无法开放 80/443 端口时,可通过 DNS 验证申请证书:
安装 Caddy 插件:
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
xcaddy build --with github.com/caddy-dns/alidns
配置 Caddyfile
:
www.sdyzco.com.cn {
root * C:\Website
file_server
tls {
dns alidns {
access_key_id YOUR_ALIYUN_ACCESS_KEY
access_key_secret YOUR_ALIYUN_SECRET_KEY
}
}
}
四、多域名与子域名配置
4.1 主域名与 www 域名统一
sdyzco.com.cn, www.sdyzco.com.cn {
root * C:\Website
file_server
tls wh@sdyzco.com.cn
}
4.2 子域名独立配置
app.sdyzco.com.cn {
root * C:\AppWebsite
file_server
tls wh@sdyzco.com.cn
}
五、性能优化与安全配置
5.1 通用安全头设置
通过导入配置片段添加安全响应头:
(security) {
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Frame-Options "SAMEORIGIN"
-Server # 移除服务器标识
}
}
www.sdyzco.com.cn {
import security
# 其他配置
}
5.2 静态资源压缩与缓存
(compression) {
encode gzip zstd
minimum_length 256
}
(static_assets) {
@static path *.js *.css *.png
header @static Cache-Control "public, max-age=31536000"
}
www.sdyzco.com.cn {
import compression
import static_assets
# 其他配置
}
六、服务化运行与日志管理
6.1 设置为 Windows 服务
使用 nssm
将 Caddy 配置为开机自启服务:
choco install nssm
nssm install caddy
# 在图形界面中指定 Caddy 路径和配置文件路径
6.2 日志分割与存储
www.sdyzco.com.cn {
log {
output file "C:/Logs/caddy.log" {
roll_size 50MiB # 单文件最大 50MB
roll_keep 14 # 保留 14 个历史文件
}
}
# 其他配置
}
七、常见问题与解决方案
7.1 证书申请失败
7.2 404 错误
八、总结
Caddy 通过极简的配置和自动化特性,大幅降低了 HTTPS 部署门槛。本文覆盖了 Windows 环境下的安装、证书申请、多域名配置及性能优化,开发者可根据实际需求灵活调整配置。建议在生产环境中结合云服务商的安全组策略,并定期监控证书状态,确保服务稳定运行。
阅读原文:https://blog.51cto.com/wahu/13967500
该文章在 2025/8/13 17:06:07 编辑过