Caddy 是一个功能强大的开源 Web 服务器,用 Go 编写,可用于在生产环境中托管 Web 应用程序。Caddy 具有内置的自动 TLS 证书更新、OSCP 装订、静态文件服务、反向代理、Kubernetes 入口等等。Caddy 可以作为独立的 Web 服务器、应用服务器甚至在容器中运行。
在本教程中,我将引导您完成在 Ubuntu Server 22.04 上安装 Caddy 的步骤,以及如何创建一个简单的静态站点。
你需要什么
要启动并运行 Caddy,您需要一个 Ubuntu Server 22.04 实例和一个具有 sudo 权限的用户。准备好这两件事后,就可以开始安装了。
如何安装 Caddy
登录到您的 Ubuntu Server 实例并添加必要的依赖项:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https -y
linuxmi@linuxmi:~/www.linuxmi.com$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
使用以下命令创建存储库文件:
linuxmi@linuxmi:~/www.linuxmi.com$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
更新apt:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
最后,使用以下命令安装 Caddy:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install caddy -y
使用以下命令启动并启用 Caddy 服务:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable --now caddy
您现在应该能够将浏览器指向 http://SERVER(SERVER
托管服务器的 IP 地址或域名)并看到默认的 Caddy 欢迎页面(图 1)。
图1:Ubuntu Server 22.04 上的 Caddy 欢迎页面由。
如何创建您的第一个 Caddy 站点
开箱即用的 Caddy 文档根目录是 /usr/share/caddy,但我们希望将其更改为更标准的目录。在我们配置 Caddy 之前,使用以下命令创建新的文档根目录:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo mkdir -p /var/ww/html
接下来,让我们创建一个基本的静态站点文件:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo nano /var/www/html/index.hml
在该文件中,粘贴以下内容:
<html>
<head>
<title>Hello, Linux迷 www.linuxmi.com</title>
</head>
<body>
<h1 style="font-family: sans-serif">Hello, Linux迷 www.linuxmi.com, 来自 Caddy Web 服务器!</h1>
</body>
</html>
保存并关闭文件。
使用以下命令打开 Caddy 配置文件:
sudo nano /etc/caddy/Caddyfile
在该文件的顶部附近,你会发现以下部分:
root * /usr/share/caddy
更改为
root * /var/www/html
保存并关闭文件。
使用以下命令重新加载 Caddy 配置:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl reload caddy
将您的 Web 浏览器指向 http://SERVER(SERVER
托管服务器的 IP 地址或域名),您应该会看到我们的新欢迎消息(图 2)
图2:我们新的 Caddy 欢迎页面向。
Caddy 为静态网站准备了另一个有趣的技巧。让我们创建另一个页面,该页面将打印出 Hello, TechRepublic 消息,然后使用 curl 将其上传到 Caddy 服务器。
使用以下命令创建一个新文件:
linuxmi@linuxmi:~/www.linuxmi.com$ nano caddy.json
在该文件中,粘贴以下内容:
{
"apps": {
"http": {
"servers": {
"example": {
"listen": [":2022"],
"routes": [
{
"handle": [{
"handler": "static_response",
"body": "Hello, LinuxMi www.linuxmi.com"
}]
}
]
}
}
}
}
}
保存并关闭文件。
使用以下命令将我们的 caddy.json 文件上传到 Caddy 服务器:
linuxmi@linuxmi:~/www.linuxmi.com$ curl localhost:2019/load -X POST -H "Content-Type: application/json" -d @caddy.json
上传应该立即发生。完成后,将您的浏览器指向 http://SERVER:2022(SERVER
您的托管服务器的 IP 地址或域名),您应该会看到 Hello, LinuxMi www.linuxmi.com 信息(图 3)。
图3:我们的新静态站点通过 curl 推送到服务器。
恭喜,您现在已经启动并运行了轻量级、闪电般快速的 Caddy Web 服务器。稍后我们将返回到这一点,以了解更多利用此平台的方法。