在当今的网站部署中,HTTPS
已成为标配而非可选功能。
传统方式配置 HTTPS
需要手动申请证书、配置 Nginx
等复杂步骤,
Caddy
的简洁配置和自动化 HTTPS
使其成为静态网站部署的理想选择。
下面是我在我的服务器上使用 Caddy
部署静态博客,并实现自动 HTTPS
配置的过程!
安装 Caddy
安装 Caddy
我使用的 curl
下载的 Caddy
sudo curl -o /usr/local/bin/caddy "`HTTPS`://caddyserver.com/api/download?os=linux&arch=amd64"
因为下载的命令下载一直超时
yum install caddy -y
所以还需要给权限
sudo chmod +x /usr/local/bin/caddy
验证安装
caddy version
# 应输出类似 v2.6.4 的版本号
准备博客文件
创建博客目录
sudo mkdir -p /var/www/blogs
设置权限
sudo chown -R caddy:caddy /var/www/blogs
sudo chmod -R 755 /var/www/blogs
上传博客文件
将你的静态博客文件(如 Hugo、Hexo 生成的 public 目录内容)上传到 /var/www/blogs
。
配置 Caddy
编辑配置文件
sudo vi /etc/caddy/Caddyfile
写入以下配置
# 替换为你的真实域名
yourdomain.com {
root * /var/www/blogs
file_server
encode gzip
# 可选:配置日志
log {
output file /var/log/caddy/access.log
format json
}
}
启动服务
创建 Systemd 服务文件
vi /etc/systemd/system/caddy.service
[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
sudo systemctl restart caddy
设置开机启动
sudo systemctl enable caddy
检查状态
sudo systemctl status caddy
# 应显示 active (running)
防火墙配置
开放端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
验证防火墙
sudo ufw status
# 应显示 80 和 443 端口开放
验证 HTTPS
访问 https://yourdomain.com
,你应该能看到:
浏览器地址栏显示绿色锁标志 网站内容正常加载 自动跳转到 HTTPS
(如访问 HTTP 版本)
高级配置
重定向 www 到非 www
yourdomain.com {
redir https://www.yourdomain.com{uri}
}
www.yourdomain.com {
root * /var/www/blogs
file_server
}
添加 Basic Auth
caddy hash-password --plaintext '你的密码'
然后在 Caddyfile
中添加:
basicauth {
用户名 生成的密码哈希
}
自定义错误页面
handle_errors {
@404 {
expression {http.error.status_code} == 404
}
rewrite @404 /404.html
file_server
}
结语
好了,今天的分享就这些了,通过本文,你可以成功使用 Caddy
部署了静态博客网站,并实现了:
自动 HTTPS
证书申请和续期Gzip 压缩优化 完善的权限配置 日志记录功能
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://zblog.hqyman.cn/post/10840.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~