Debian/Ubuntu 安装 Caddy
Caddy 是 go 编写的一款简单易用的 Web Server 软件。
下载
到官方 Github 版本发行 页面下载符合架构的最新版本。
Caddy 在 systemd 下的安装
条件假设:
- 以
www-data
用户/组身份运行 Caddy和www-data
, UID 和 GID 33 - 以非超级用户身份,使用 'sudo' 以 root 身份执行命令
首先,将 caddy 二进制文件放到系统的可执行路径,并设置所有者及权限:
sudo cp /path/to/caddy /usr/local/bin
sudo chown root:root /usr/local/bin/caddy
sudo chmod 755 /usr/local/bin/caddy
通过 setcap
让 caddy 可以通过普通用户运行时绑定特权端口(如 80,443):
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
设置必要的用户、用户组及目录:
sudo groupadd -g 33 www-data
sudo useradd \
-g www-data --no-user-group \
--home-dir /var/www --no-create-home \
--shell /usr/sbin/nologin \
--system --uid 33 www-data
sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo mkdir /etc/ssl/caddy
sudo chown -R root:www-data /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
将配置文件 Caddyfile
放到恰当的位置并设置所有者及权限:
sudo touch /etc/caddy/Caddyfile
sudo chown www-data:www-data /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
创建网站根目录并配置所有者及权限:
sudo mkdir /var/www
sudo chown www-data:www-data /var/www
sudo chmod 555 /var/www
假设根目录下有一站点 example.com
:
sudo cp -R example.com /var/www/
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 555 /var/www/example.com
在 caddy 配置文件中添加以下内容即可启动该站点:
example.com {
root /var/www/example.com
...
}
配置 caddy 的 systemd 配置文件:
wget https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service
sudo cp caddy.service /etc/systemd/system/
sudo chown root:root /etc/systemd/system/caddy.service
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl daemon-reload
sudo systemctl start caddy.service
设置 caddy 开机启动:
sudo systemctl enable caddy.service
如果 caddy 启动失败可以通过以下命令查看日志:
journalctl --boot -u caddy.service
在 Caddyfile
中添加 log stdout
和 errors stderr
可以完整利用 systemd 的日志。
使用以下命令可以查看 caddy 的最新日志:
journalctl -f -u caddy.service
使用以下命令可以让 www-data
用户访问其他的证书和私钥:
setfacl -m user:www-data:r-- /etc/ssl/private/my.key