Caddy是一款基于Go语言编写的强大且可扩展的平台,可以给你的站点、服务和应用程序提供服务。如果你是Caddy的新手,那么你提供Web服务的方式即将改变。
本文主要介绍了在 Debian、Ubuntu、Raspbian
系统上安装Caddy方法。
Caddy的安装
安装此软件包会自动启动将Caddy作为systemd服务(名称为caddy)运行,另外,还有一个名为caddy-api可供使用,它默认没有被启用。
bash 代码:sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Caddy的服务管理
bash 代码:systemctl enable caddy.service # 开机启动
systemctl start caddy.service # 启动
systemctl stop caddy.service # 停止
systemctl restart caddy.service # 重启
systemctl status caddy.service # 查看状态
systemctl daemon-reload # 重载配置
配置 Caddy
安装成功后,默认生成的caddy配置文件Caddyfile
中的部分信息,如下:
# domain name.
:80
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
自动生成证书的位置:$HOME/.caddy
或者使用 caddy -log stdout
查看日志输出信息
默认的Caddyfile配置为单个站点配置。且为http协议,因为在配置中显式申明了:80,如果没有显式的申明80端口,默认将使用https协议。
配置多个站点的写法
bash 代码:# 站点1
# 在配置的虚拟主机域名后使用{},该主机的所有配置信息包含在{}中。
localhost {
respond "Hello, world!"
}
# 站点2
# 在配置的虚拟主机域名后使用{},该主机的所有配置信息包含在{}中。
localhost:2016 {
respond "Goodbye, world!"
}
...
更多配置项可以参看官方文档。
Caddyfile 配置文件示例
bash 代码:example.com {
root /var/www/example.com # 如果不需要在本地放置站点内容,可以不需要。
gzip
reverse_proxy /ray localhost:10000 {
header_up -Origin
}
}
说明:
- root /var/www/example.com:example.com 域名指向的网站根目录;
- proxy /ray localhost:10000 { … }:将特定的路径请求(这里指发送到/ray的请求),转发到主机本地端口10000。
修改了配置文件后,需要重新就加载caddy服务:systemctl restart caddy.service