安装Caddy
Caddy是Go语言实现的HTTP/2 web server,且默认自动开启HTTPS,配置简单,使用方便,非常适合用于博客。
首先从Caddy download下载binary,在下载时可以选择所需要的plugin,例如本站选择了net
和hook-service
两种plugin。
将binary下载到服务器上之后,解压,将会得到caddy
二进制文件。
1
2
3
|
sudo cp /path/to/caddy /usr/local/bin
sudo chown root:root /usr/local/bin/caddy
sudo chmod 755 /usr/local/bin/caddy
|
将新建一个专有的账户来运行Caddy,因此需要进行权限设置以允许其使用特殊端口(80和443):
1
|
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
|
配置Caddy
添加专门账户www-data
用来运行Caddy:
1
2
3
4
5
6
|
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
|
创建caddy所需要的配置目录。
1
2
3
4
5
|
sudo mkdir /etc/caddy
sudo chown -R root:root /etc/caddy
sudo mkdir /etc/ssl/caddy
sudo chown -R root:www-data /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
|
Caddy通过Caddyfile
文件进行配置,其详细配置可以参考Caddy docs。例如本站的配置文件为:
1
2
3
4
|
liuyaqiu.io {
gzip
root /var/www/liuyaqiu.io
}
|
将配置文件移入到**/etc/caddy/**目录下:
1
2
3
|
sudo cp /path/to/Caddyfile /etc/caddy/
sudo chown root:root /etc/caddy/Caddyfile
sudo chmod 644 /etc/caddy/Caddyfile
|
创建网站的托管目录:
1
2
3
|
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
|
设置service
可以将Caddy通过systemd托管为系统服务,当系统启动时就自动重启。
1
2
3
4
5
6
|
wget https://raw.githubusercontent.com/caddyserver/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 linux-systemd。