24
2025
04
16:41:21

Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了!

在当今的网站部署中,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,你应该能看到:

  1. 浏览器地址栏显示绿色锁标志
  2. 网站内容正常加载
  3. 自动跳转到 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 压缩优化
  • 完善的权限配置
  • 日志记录功能




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://zblog.hqyman.cn/post/10840.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: