下载安装
目前有三种安装途径,分别为官网(下面)、Github、各系统包管理。
官网的最方便,因为下载后直接就是二进制单文件,不需要多余的操作步骤(而且还能附加插件),而 Github 的是压缩包还需要解压、包管理则还需要修改包管理源。
# 创建文件夹并进入(自己可以改)
mkdir /usr/local/caddy && cd /usr/local/caddy
# 下载 Caddy 文件,Caddy 2 不再支持 32 位系统了,如果要安装某些插件,还要进 https://caddyserver.com/download 去挑选一下
wget -N --no-check-certificate -O "caddy" "https://caddyserver.com/api/download?os=linux&arch=amd64"
# 赋予执行权限
chmod +x caddy
配置示例
Caddy 2 可以用命令行启动 HTTP 服务,也可以用配置文件(默认:Caddyfile,当然新版也实现了用json这种方式控制,对于设计自动化和程序化的服务更简单了,但是用caddyfile习惯了,纯写还是caddyfile简单有效)。
不过命令行方式启动只适合于临时使用,毕竟默认是前台运行,所以还是用配置文件吧。
下列示例中,XXX.XX 为你的域名,如果要用 IP,请改成 :8080 !
静态文件服务:
# 下面的几行命令是一个整体,请修改后一起复制粘贴去运行
# /usr/local/caddy/Caddyfile 为默认配置文件位置,可以改
# /home/xxx 为网站目录路径,如果省略则为 caddy 程序所在文件夹
echo "XXX.XX {
root * /home/xxx
file_server
}" >> /usr/local/caddy/Caddyfile
目录列表服务:
# 下面的几行命令是一个整体,请修改后一起复制粘贴去运行
# /usr/local/caddy/Caddyfile 为默认配置文件位置,可以改
# /home/xxx 为网站目录路径,如果省略则为 caddy 程序所在文件夹
echo "XXX.XX {
root * /home/xxx
file_server browse
}" >> /usr/local/caddy/Caddyfile
反向代理服务:
# 下面的几行命令是一个整体,请修改后一起复制粘贴去运行
# /usr/local/caddy/Caddyfile 为默认配置文件位置,可以改
# YYY.YY 是目标网站,https:// 和 :8080 省略后分别默认为 https 协议和 443 端口
# reverse_proxy 基本包括了所有的流量代理,包括websocket
# http
echo "XXX.XX {
reverse_proxy http://YYY.YY:8080
}" >> /usr/local/caddy/Caddyfile
# https
echo "XXX.XX {
reverse_proxy https://YYY.YY:8080
}" >> /usr/local/caddy/Caddyfile
普通PHP配置
# /home/xxx 为网站目录路径,如果省略则为 caddy 程序所在文件夹
# php 版本 7.4
xxx.com {
root * /home/xxx
file_server
encode gzip
php_fastcgi unix//run/php/php7.4-fpm.sock
try_files {path} {path}/ /index.php?{query}
}
WordPress 配置
# /home/xxx 为网站目录路径,如果省略则为 caddy 程序所在文件夹
# php 版本 7.4
xxxx.com {
root * /home/xxx
file_server
encode gzip
php_fastcgi unix//run/php/php7.4-fpm.sock
handle_path / { try_files {path} {path}/index.php?{query} index.php?{query} }
}
log 配置
XXX.XX {
reverse_proxy 127.0.0.1:8080
log {
output file /var/log/caddy/ata.access.log {
roll_size 100mb
roll_keep 30
roll_keep_for 720h
}
format json
level DEBUG
}
}
配置检查
写好配置后,可以用这个命令检查下配置文件格式是否正确:
/usr/local/caddy/caddy validate
启动停止
Caddy 2 直接集成启动/停止等命令了,连系统服务脚本都不需要了!
当然如果你想要守护进程,那么你还需要根据官网教程配置 systemd 系统服务。
启动
# start 命令是后台运行(可以关闭 SSH 终端),而 run 命令是前台运行。
# 启动成功会提示:Successfully started Caddy (pid=XXXX) - Caddy is running in the background
/usr/local/caddy/caddy start --config /usr/local/caddy/Caddyfile --adapter caddyfile
停止
# 停止成功会提示:stopping now, bye!!
/usr/local/caddy/caddy stop
重载配置
# 修改配置文件后不需要重启 Caddy ,重载一下就行了!
/usr/local/caddy/caddy reload --config /usr/local/caddy/Caddyfile --adapter caddyfile
其他说明
如果嫌弃每次都要用 /usr/local/caddy/caddy
执行命令,那可以做个软链接:
# 软链接类似于 Windows 的快捷方式
ln -s /usr/local/caddy/caddy /usr/bin/caddy
这样你就可以把 /usr/local/caddy/caddy start
等命令简化为 caddy start
了!
开机启动
开机自启
先新建systemd配置文件,适用CentOS 7、Debian 8+、Ubuntu 16+。
再使用命令:
#以下是一整条命令,一起复制到SSH客户端运行
cat > /etc/systemd/system/caddy.service <<EOF
[Unit]
Description=Caddy
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/caddy/caddy start --config /usr/local/caddy/Caddyfile --adapter caddyfile
Restart=on-abort
User=root
[Install]
WantedBy=default.target
EOF
启动
systemctl start caddy
开机自启
systemctl enable caddy
其他指令
重启:systemctl restart caddy
停止:systemctl stop caddy
状态:systemctl status caddy
显示评论