系统环境

标题 版本 备注
系统版本 ubuntu 22.04.3 LTS (Jammy Jellyfish) -
内核版本 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux -
Caddy v2.7.6 -

caddy 简介

caddy 安装

1.下载打包好的二进制包到服务器的 /usr/local/src/ 目录下:

$ sudo wget -O /usr/local/src/caddy_2.7.6_linux_amd64.tar.gz https://git
hub.com/caddyserver/caddy/releases/download/v2.7.6/caddy_2.7.6_linux_amd64.tar.gz

2.在 /usr/local/ 目录下创建 caddy 的工作目录 caddy/{logs,etc,bin}:

$ sudo mkdir -p /usr/local/caddy/{logs,etc,bin} 

3.将下载好的二进制文件解压到 /usr/local/caddy/bin 目录下:

$ sudo tar -zxf /usr/local/src/caddy_2.7.6_linux_amd64.tar.gz -C /usr/local/caddy/bin/

4.在 /etc/profile.d 目录下创建 caddy 的系统环境配置文件 caddy.sh, 内容为:

$ sudo sh -c 'cat << EOF > /etc/profile.d/caddy.sh
PATH=\$PATH:/usr/local/caddy/bin
EOF'

5.执行命令 source /etc/profile.d/caddy.sh 加载 caddy 的系统环境配置,使其立即生效:

$ souce /etc/profile.d/caddy.sh

6.执行命令 caddy --version 看能否输出 caddy 的版本号,能,则说明 caddy 环境配置没问题了!

$ caddy --version
v2.7.6 h1:w0NymbG2m9PcvKWsrXO6EEkY9Ru4FJK8uQbYcev1p3A=

7.在 /lib/systemd/system/ 目录下创建 caddy 的启动脚本文件 caddy.service ,内容如下:

$ sudo sh -c 'cat << EOF > /lib/systemd/system/caddy.service
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target

[Service]
User=caddy
Group=caddy
ExecStart=/usr/local/caddy/bin/caddy run --environ --config /usr/local/caddy/etc/Caddyfile
ExecReload=/usr/local/caddy/bin/caddy --config /usr/local/caddy/etc/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
EOF'

8.执行下下面的命令,加载下启动脚本:

$ sudo systemctl daemon-reload

caddy 配置

静态站点配置

1.创建静态资源站点目录及创建静态资源页面

$ sudo mkdir -p /data/caddy/www
$ sudo sh -c 'echo "This is the caddy site" > /data/caddy/www/index.html'

2.在 caddy 配置目录 /usr/local/caddy/etc/ 下新建 Caddyfile, 内容如下:

caddy.xxxxu.com:443 {

# 网站路径,不清楚中间的 * 作用
root * /data/caddy/www/

# 启用压缩
encode zstd gzip

# 设置当前目录为静态文件服务器
file_server browse

# 定义 log
log {
output file /usr/local/caddy/logs/caddy.log
}

# 注意这里的反向代理路径要和 v2ray 配置文件中的 path 一致,同时,后面反向代理的端口也要和 v2ray 配置文件中的 port 一致:
#reverse_proxy /data/website/v2ray 127.0.0.1:1425

# 自动申请TLS 的邮箱,好像在这个版本也可以不用写
tls caddy@caddy.com
tls {
protocols tls1.2 tls1.3
}

# 启用HSTS
header {
#
#Strict-Transport-Security "max-age=31536000;"

# 加上includeSubdomains
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

X-Frame-Options SAMEORIGIN
X-Content-Type-Options nosniff

}
}

**注意:域名需要事先解析好

3.执行下命令 systemctl enable --now caddy.service 启动下 caddy 服务:

$ sudo systemctl enable --now caddy.service

3.打开浏览器,访问域名,如下图: