Post

在 CentOS 上安装 Caddy 服务

安装

CentOS 据说可以通过 yum install caddy 来安装,不过前提是要安装 epel 安装源,不过我习惯从 Caddy 官方网站下载安装。

ssh 登录到 CentOS 系统里,运行

1
2
# 选择自己需要的模块一并安装
curl https://getcaddy.com | bash -s personal http.cache,http.geoip,http.git,http.grpc

因为 Caddy 就是一个可执行文件,所以下载就完了。

配置

要启动 Caddy,需要建立一个 root 用户以外的账户,我新建的账户叫做 caddy,以下为 caddy 的配置过程:

建立一个用于存放网页文件的目录,如 /var/www,命令如下:

1
sudo mkdir /var/www

建立 caddy 用户

1
sudo adduser -r -d /var/www -s /sbin/nologin caddy

建立 Caddy 配置文件的路径

1
mkdir /etc/caddy

建立一个空的 Caddy 工作配置参数文件

1
sudo touch /etc/caddy/Caddyfile

设置路径的访问权限

1
sudo chown -R root:caddy /etc/caddy

创建用于存放 ssl 证书的路径,并给予正确的权限

1
2
3
sudo mkdir /etc/ssl/caddy
sudo chown -R caddy:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

创建用于存放日志的路径

1
2
sudo mkdir /var/log/caddy
sudo chown -R caddy:root /var/log/caddy

修改存放网页的路径权限 /var/www

1
sudo chown caddy:caddy /var/www

把 Caddy 安装为开机自动启动的服务

1
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

修改配置文件里面的用户信息

1
2
3
4
5
6
# 打开自动启动服务配置文件
sudo vi /etc/systemd/system/caddy.service
# 查找并修改:
; User and group the process will run as.
User=caddy
Group=caddy

设置服务

1
2
sudo systemctl daemon-reload
sudo systemctl enable caddy.service

现在还不能正常成功启动 Caddy,因为还没有配置网站参数信息。

配置网站信息

网站配置参数信息文件是 /etc/caddy/Caddyfile

1
2
3
4
5
6
7
8
9
10
# 打开配置文件
sudo vi /etc/caddy/Caddyfile
# 添加如下信息
www.example.com   # 把这里修改为实际网站的域名
{
  log /var/log/caddy/caddy.log # 日志文件
  tls example@example.com # 修改为个人邮箱帐号,用于自动申请 ssl 证书
  root /var/www # 网站根目录
  gzip
}

启动 Caddy 服务

1
2
3
4
# 重启 Caddy 服务
sudo systemctl restart caddy
# 查看运行状态
sudo systemctl status caddy -l

如果提示自动加载证书失败,可以使用 CertBot 手动申请证书。

This post is licensed under CC BY 4.0 by the author.