简介

Caddy 是一款简单易用的 HTTP/2 反向代理和 web 服务器,它具有自动 SSL、HTTP/2、HTTP/3 和 ACME 自动续期等功能。本文将指导您在 CentOS 服务器上部署 Caddy,并配置自定义域名。

环境准备

  1. 一台运行 CentOS 的服务器。
  2. 服务器上已安装 Docker。

安装 Caddy

由于 Caddy 基于 Docker,我们可以通过 Docker Hub 安装 Caddy。

sudo docker run --name caddy -p 80:80 -p 443:443 caddy

此命令将 Caddy 容器运行在后台,并映射了 80 和 443 端口,使 Caddy 可以接受 HTTP 和 HTTPS 请求。

配置自定义域名

  1. 在您的域名提供商处创建一个指向服务器的 CNAME 记录,例如:example.com 指向 caddy.example.com
  2. 修改 Caddy 的配置文件 /etc/caddy/Caddyfile
example.com {
    root * /path/to/your/webapp
    file_server
}

在上面的配置中,将 example.com 替换为您的域名,并将 /path/to/your/webapp 替换为您的网站根目录。

启用 ACME 自动续期

Caddy 使用 ACME 协议自动获取和续期 SSL 证书。以下步骤启用 ACME 自动续期:

  1. 生成密钥对:
openssl genrsa -out /etc/caddy/caddy.key 4096
openssl req -new -x509 -nodes -days 365 -key /etc/caddy/caddy.key -out /etc/caddy/caddy.crt
  1. 修改 Caddy 配置文件,添加密钥和证书:
example.com {
    root * /path/to/your/webapp
    file_server
    certbot {
        email your-email@example.com
       agree_tos true
        auto_renew true
    }
}

在上面的配置中,将 your-email@example.com 替换为您在 ACME 服务器上的邮箱地址。

重启 Caddy

重新启动 Caddy 容器以应用新配置:

sudo docker restart caddy

验证配置

  1. 打开浏览器,访问您的自定义域名,例如 http://example.com
  2. 如果一切配置正确,您应该能看到您的网站内容。

总结

通过以上步骤,您已在 CentOS 服务器上成功部署了 Caddy 反向代理,并启用了自定义域名。Caddy 的自动 SSL 和 HTTP/2 支持将简化您的 web 服务器配置工作。