Ubuntu系统
下文使用的假IP为192.168.31.33,请自行替换自己的IP
Caddy 在默认的 Ubuntu 22.04 APT 仓库中不可用,但可以通过源代码文件安装,或者在你的服务器上添加最新的仓库信息进行安装。
安装Caddy
-
将最新的 Caddy GPG 密钥添加到服务器中
bashcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg--dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
-
将 Caddy 仓库添加到APT源
bashcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudotee /etc/apt/sources.list.d/caddy-stable.list
-
更新服务软件包索引
sqlsudo apt update
-
安装 Caddy
sudo apt install caddy
-
查看已安装的 Caddy 版本
caddy -v
-
允许通过防火墙传入HTTP端口80的连接
sudo ufw allow 80
-
重启防火墙以应用更改
sudo ufw reload
-
访问服务器IP以测试Caddy
arduinohttp://192.168.31.33
管理Caddy服务
-
启动 Caddy 服务
sqlsudo systemctl start caddy
-
查看 Caddy 服务状态
luasudo systemctl status caddy
-
配置开机自启
bashsudo systemctl enable caddy
配置 Caddy 代理
以下主要为测试代理以及https是否能生效,具体代理配置请根据自己需要自行修改Caddyfile
文件
-
创建程序文件目录
bashsudo mkdir -p /var/www/example.com
-
创建一个新的HTML应用程序文件
bashsudo vim /var/www/example.com/index.html
-
在
index.html
文件中添加以下内容css<h1>Hello World Caddy</h1>
-
切换到 Caddy 配置文件目录
bashcd /etc/caddy
-
配置默认到 Caddyfile 配置
arduinomv Caddyfile Caddyfile.default
-
创建一个新的 Caddyfile 配置
vim Caddyfile
-
将以下配置添加到 Caddyfile 文件中
lua192.168.31.33:1111 { root * /var/www/example.com file_server { index index.html } log { output file /var/log/caddy/example.log format console } }
真实配置文件可能如下,将1111端口代理转发到2222端口,具体请根据自己需求自行调整
css192.168.31.33:1111 { reverse_proxy 192.168.31.33:2222 }
填写完后按
Ese
返回命令模式输入:wq
保存文件退出 -
测试 Caddy 配置是否存在错误
caddy validate
-
重新加载 Caddy 服务
sudo caddy reload
保护 Caddy Web 服务器
限制对Caddyfile配置的访问,防止意外或未经授权的用户更改。
-
授予Caddy用户对
etc/caddy
目录的完全权限bashsudo chown -R caddy:caddy /etc/caddy
-
授权Caddy用户对Caddyfile的读写权限,同时禁止其他系统用户的访问权限
bashsudo chmod 600 /etc/caddy/Caddyfile
-
使用浏览器访问自己的IP
arduinohttps://192.168.31.33:1111
看到以下内容说明已经配置成功
至此你已完成在Ubuntu系统上配置Caddy的所有内容
macOS系统
本文通过brew安装caddy,IP同样使用192.168.31.33假IP
安装brew请访问官网Homebrew
安装caddy
brew install caddy
查看caddy版本
caddy version
查看配置文件目录
bash
cd /usr/local/Cellar/caddy/2.10.0 # 2.10.0为版本号,根据自己安装的目录改
cat homebrew.mxcl.caddy.plist
内容如下
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/usr/local/var/lib</string>
<key>XDG_DATA_HOME</key>
<string>/usr/local/var/lib</string>
</dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.caddy</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/caddy/bin/caddy</string>
<string>run</string>
<string>--config</string>
<string>/usr/local/etc/Caddyfile</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/caddy.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/caddy.log</string>
</dict>
</plist>
配置文件所在目录
typescript
<string>/usr/local/etc/Caddyfile</string>
创建caddy文件夹
bash
cd /usr/local/etc
bash
mkdir caddy
cd caddy
创建Caddyfile配置文件
vim Caddyfile
Caddyfile配置文件内容如下,自行修改也可像Ubuntu那样去验证
css
192.168.31.33:1111 {
reverse_proxy 192.168.31.33:2222
}
修改homebrew.mxcl.caddy.plist文件
bash
cd /usr/local/Cellar/caddy/2.10.0
vim homebrew.mxcl.caddy.plist
typescript
<string>/usr/local/etc/Caddyfile</string>
修改为
<string>/usr/local/etc/caddy/Caddyfile</string>
启动caddy
sql
brew services start caddy