第 2 章 使用入门

目录

1. 运行守护进程(Run the daemon)
2. Caddyfile配置文件
2.1. Hello World! ( Caddyfile )
2.2. 配置多站点 ( Caddyfile & API )
3. 尝试使用caddyAPI & JSON
3.1. Hello World! ( Heredoc )
3.2. Hello World! ( JSON )
3.3. 配置多站点 ( JSON & API)
4. 配置测试和adapter
4.1. 对配置进行测试(Test config)
4.2. adapter
5. JSON vs. Caddyfile
6. API vs. Config files
7. 静态文件服务器
7.1. command line
7.2. Caddyfile
8. 反向代理
8.1. command line
8.2. Caddyfile
9. HTTPS
9.1. Caddyfile
9.2. 使用命令

为了能更清晰地描述,我们在局域网中设立一台caddy服务器,我们称为Server,其内网IP地址是192.168.31.2/24,外网IP地址是192.168.1.2/24。我们在其上安装Debian Linux(V12)。

图 2.1. caddy服务器网络拓扑图

caddy服务器网络拓扑图

同时,我们需要在客户端(客户端使用了Ubuntu桌面系统)和caddy server端安装两个工具:

  1. curl

    curl,即client-URL,可以认为是一个命令行的浏览器,在Debian/Ubuntu下使用apt-get install curl命令来安装。它的官方站点是https://curl.se/

  2. jq

    jq 是一个基于命令行的、轻量级JSON文件处理工具,caddy的原生配置文件是JSON文件,我们需要用jq命令来将其格式化,以便于阅读。在Debian或Ubuntu下可通过apt-get install jq来安装。关于其更多内容请访问:https://stedolan.github.io/jq/

1. 运行守护进程(Run the daemon)

在终端输入caddy命令,会显示help信息。如果想让caddy作为守护进程来运行,有两个子命令可以使用:runstart。在终端中输入caddy runcaddy start即可。runstart的区别是:

  1. run:开启caddy进程,可以随时使用(Ctrl+C)或关闭终端来结束其运行。
  2. start:开启caddy进程,并在后台运行。可以使用caddy sotp来结束其运行。

在配置文件为空的情况下,运行caddy runcaddy start之后,系统会开启一个本地的2019端口,这个端口就是caddy的API管理接口。可以通过这个接口对caddy完成很多的操作。

下面的内容就是使用caddy start启动系统之后的屏幕内容,通过使用netstat -ptuln命令,可以看到,caddy开启了本地的2019管理端口:

root@lognovel:~# caddy start
2021/11/08 05:46:38.499	INFO	admin	admin endpoint started	{"address": "tcp/localhost:2019", \
         "enforce_origin": false, "origins": ["localhost:2019", "[::1]:2019", "127.0.0.1:2019"]}
2021/11/08 05:46:38.499	INFO	serving initial configuration
Successfully started Caddy (pid=1850) - Caddy is running in the background
root@lognovel:~# netstat -ptuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address    State       PID/Program name    
tcp        0      0 127.0.0.1:2019          0.0.0.0:*          LISTEN      1850/caddy          
... ...
[注意]注意
caddy所启动的2019端口L并非我们的web站点,而是“管理端点(administration endpoint)”,也就是caddy的API。在默认情况下,运行在本机的2019端口,并且只允许本机访问。可以使用curl localhost:2019/config/命令来查看系统配置。