Caddy Server基本用法
命令行参数
在当前目录下开启静态服务器
caddy -host t.xxx.cn
首次运行后会提示输入邮箱,用于获取https证书,获取完证书即开启成功
默认启用http2
,默认http端口80,https端口443,默认启用http跳转到https,默认首页自动加载index.html
使用-root
参数可以设置根目录,默认为当前目录
相关文件会存储于~/.caddy
文件夹中.
sudo setcap cap_net_bind_service=+ep ./caddy
使用QUIC
caddy -host t.xxx.cn -quic
使用quic
协议
使用quic参数后,通过netstat -anltup
可以查看到tcp和udp的80和443端口都被监听.
Chrome浏览器支持quic,可以通过chrome://net-internals/#quic
查看是使用的是quic
还是http2
使用配置文件
Caddyfile
:80 {
log stdout
errors stderr
redir https://{host}{uri}
}
:443 {
log stdout
errors stderr
gzip
tls /caddy/ssl/default.crt /caddy/ssl/default.key
root /caddy/sites.d/0-default
markdown /
}
site1.local {
log stdout
errors stderr
gzip
proxy / dockerhost.local:32000 {
policy least_conn
transparent
insecure_skip_verify
fail_timeout 10s
max_fails 1
try_duration 1s
}
}
site2.local {
log stdout
errors stderr
gzip
proxy / dockerhost.local:32001 {
policy least_conn
transparent
insecure_skip_verify
fail_timeout 10s
max_fails 1
try_duration 1s
}
}
an example conf
g.xx.cn:443 {
log /var/log/caddy/access.log
errors /var/log/caddy/error.log
gzip
status 204 {
/gen_204
/generate_204
}
tls /root/certificates/xx.crt /root/certificates/xx.key
proxy / https://www.google.ca {
header_upstream Host "www.google.ca"
}
}
t.xx.cn:443 {
root /root
}
h2.suconghou.cn:443 {
log stdout
errors stderr
root /path/to/your/site
forwardproxy {
hide_ip
hide_via
basicauth user pass
probe_resistance secret.localhost
serve_pac /secret-proxy.pac
}
}
配置fastcgi链接php-fpm
php-fpm
开启php-fpm服务,监听 127.0.0.1:9000
Caddyfile
localhost:9098
tls off
gzip
root /data/
fastcgi / 127.0.0.1:9000 php
本地使用tls off
关闭自动获取https证书
fastcgi / 127.0.0.1:9000 php
最后面的一个php是预设值的值,相当于
ext .php
split .php
index index.php
caddy 会默认在当前目录查找Caddyfile
可以使用参数-conf
指定配置文件路径
log stdout proxy / https://localhost:8081 { header_upstream Host “xmpp.git.suconghou.cn” header_upstream X-Forwarded-Proto “https” insecure_skip_verify }
ejabberdctl register admin langzhetest.com 123456
执行caddy -conf /etc/Caddyfile -validate
验证配置文件。
caddy -conf /etc/Caddyfile
开启服务
注意 访问地址需要与配置文件中声明的域名地址相同
配置文件中是localhost:9098
,不能用127.0.0.1:9098
访问。
log to stdout
systemctl service example , log collectioned by journalctl
/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
local https
caddy -host localhost "proxy / localhost:9000" "tls self_signed"
sudo caddy -host ssl.git.suconghou.cn --port 443 "proxy / localhost:8000" "tls self_signed"