silmace

从0开始的caddy 2之旅
Caddy是一个轻量级的HTTP服务器,现在已经是第2个大版本,配置文件发生了变化,我做了一些总结。caddy配置...
扫描右侧二维码阅读全文
14
2020/04

从0开始的caddy 2之旅

Caddy是一个轻量级的HTTP服务器,现在已经是第2个大版本,配置文件发生了变化,我做了一些总结。caddy配置起来十分简单,还可以自动化部署https,而且对各种http新协议都支持的比较早(比如 http2、quic),我是一直在使用

安装

这里以debian10_x86为例,以root用户执行,其他发行版请自行更换命令

#懒得编译,直接下载编译好的二进制文件即可,自行更换最新发布
wget https://github.com/caddyserver/caddy/releases/download/v2.0.0-rc.3/caddy_2.0.0-rc.3_linux_amd64.tar.gz
#解压
tar zxf caddy*.gz
#删除
rm caddy*.gz

接下来我们试着运行一下它,就以配置文件的方式好

#将下个注释前的代码一起复制到SSH运行
cat > Caddyfile <<EOF
:80
respond "Hello, world!"
EOF
#运行
./caddy run 

打开你的ip看看,是不是已经显示 Hello world

创建服务

我们希望它开机自动运行,并且方便管理,所以要为caddy创建一个服务,为了安全起见赋予较低的权限

#移动caddy到程序目录
mv caddy /usr/bin/
mkdir /etc/caddy && mv Caddyfile /etc/caddy/
#为caddy创建一个组
groupadd --system caddy
#创建caddy用户并分配可写目录
useradd --system \
    --gid caddy \
    --create-home \
    --home-dir /var/lib/caddy \
    --shell /usr/sbin/nologin \
    --comment "Caddy web server" \
    caddy
#配置systemd,到下个注释前一起复制到终端
cat > /etc/systemd/system/caddy.service<<EOF
[Unit]
Description=Caddy
After=network.target

[Service]
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
EOF
#重启服务
systemctl daemon-reload
systemctl enable caddy
systemctl start caddy

#查看运行状态
systemctl status caddy

你应该看到caddy正在运行

网站配置文件

刚才经把配置文件放到/etc/caddy/Caddyfile
下面是一个简单的多网址配置,caddy2会自动申请ssl证书,部署https,请自行参数修改

echo ":80 {
 encode gzip
 root * /网站的目录
}

xxx.com {
 encode gzip
 root * /网站的目录
}

xxx.com {
    encode gzip
    root * /网站目录
}" >/etc/caddy/Caddyfile

下面给出一些配置参数,更多配置请查看官方文档

#反向代理
reverse_proxy 127.0.0.1:8080
#重定向
redir https://example.com{uri}
#自定义证书
tls cert.pem key.pem
#添加添php环境
php_fastcgi 127.0.0.1:9000

接下来让安装一下php7.0,当然你可以安装其他版本

apt install php7.0-cgi php7.0-fpm php7.0-curl -y

重启caddy

systemctl restart caddy
Last modification:April 16th, 2020 at 05:18 pm

Make a comment