admin管理员组文章数量:1033962
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 压缩优化
- 完善的权限配置
- 日志记录功能
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 压缩优化
- 完善的权限配置
- 日志记录功能
本文标签: Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了!
版权声明:本文标题:Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了! 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748096791a2252019.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论