Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了!
前言
在当今的网站部署中,HTTPS
已成为标配而非可选功能。
传统方式配置 HTTPS
需要手动申请证书、配置 Nginx
等复杂步骤,
Caddy
的简洁配置和自动化 HTTPS
使其成为静态网站部署的理想选择。
下面是我在我的服务器上使用 Caddy
部署静态博客,并实现自动 HTTPS
配置的过程!
安装 Caddy
安装 Caddy
我使用的 curl
下载的 Caddy
sudo curl -o /usr/local/bin/caddy "`HTTPS`://caddyserver/api/download?os=linux&arch=amd64"
因为下载的命令下载一直超时
代码语言:javascript代码运行次数:0运行复制yum install caddy -y
所以还需要给权限
代码语言:javascript代码运行次数:0运行复制sudo chmod +x /usr/local/bin/caddy
验证安装
代码语言:javascript代码运行次数:0运行复制caddy version
# 应输出类似 v2.6.4 的版本号
准备博客文件
创建博客目录
代码语言:javascript代码运行次数:0运行复制sudo mkdir -p /var/www/blogs
设置权限
代码语言:javascript代码运行次数:0运行复制sudo chown -R caddy:caddy /var/www/blogs
sudo chmod -R 755 /var/www/blogs
上传博客文件
将你的静态博客文件(如 Hugo、Hexo 生成的 public 目录内容)上传到 /var/www/blogs
。
配置 Caddy
编辑配置文件
代码语言:javascript代码运行次数:0运行复制sudo vi /etc/caddy/Caddyfile
写入以下配置
代码语言:javascript代码运行次数:0运行复制# 替换为你的真实域名
yourdomain {
root * /var/www/blogs
file_server
encode gzip
# 可选:配置日志
log {
output file /var/log/caddy/access.log
format json
}
}
启动服务
创建 Systemd 服务文件
代码语言:javascript代码运行次数:0运行复制vi /etc/systemd/system/caddy.service
代码语言:javascript代码运行次数:0运行复制[Unit]
Description=CaddyWebServer
After=network.target
[Service]
ExecStart=/usr/bin/caddyrun--config/etc/caddy/Caddyfile--adaptercaddyfile
ExecReload=/usr/bin/caddyreload--config/etc/caddy/Caddyfile
Restart=always
User=caddy
Group=caddy
WorkingDirectory=/etc/caddy
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
启动 Caddy
代码语言:javascript代码运行次数:0运行复制sudo systemctl restart caddy
设置开机启动
代码语言:javascript代码运行次数:0运行复制sudo systemctl enable caddy
检查状态
代码语言:javascript代码运行次数:0运行复制sudo systemctl status caddy
# 应显示 active (running)
防火墙配置
开放端口
代码语言:javascript代码运行次数:0运行复制sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
验证防火墙
代码语言:javascript代码运行次数:0运行复制sudo ufw status
# 应显示 80 和 443 端口开放
验证 HTTPS
访问 ,你应该能看到:
- 浏览器地址栏显示绿色锁标志
- 网站内容正常加载
- 自动跳转到
HTTPS
(如访问 HTTP 版本)
高级配置
重定向 www 到非 www
代码语言:javascript代码运行次数:0运行复制yourdomain {
redir {uri}
}
www.yourdomain {
root * /var/www/blogs
file_server
}
添加 Basic Auth
代码语言:javascript代码运行次数:0运行复制caddy hash-password --plaintext '你的密码'
然后在 Caddyfile
中添加:
basicauth {
用户名 生成的密码哈希
}
自定义错误页面
代码语言:javascript代码运行次数:0运行复制handle_errors {
@404 {
expression {http.error.status_code} == 404
}
rewrite @404 /404.html
file_server
}
结语
好了,今天的分享就这些了,通过本文,你可以成功使用 Caddy
部署了静态博客网站,并实现了:
- 自动
HTTPS
证书申请和续期 - Gzip 压缩优化
- 完善的权限配置
- 日志记录功能
发布评论