简介
caddy 是使用 go 语言实现的一个高性能的类似于 nginx 的 HTTP 和反向代理服务器。支持自动申请 https 证书,配置也相当的精简
官网:https://caddyserver.com/
代理服务器配置
caddy 的文档主要都是英文的
https://caddyserver.com/docs/quick-starts/reverse-proxy
https://caddyserver.com/docs/caddyfile/directives/reverse_proxy
第二个链接是详细的配置规则,文档很多,需要耐心下来慢慢的看才能很好的理解,我第一遍看的很快,完全没懂。吃完午饭之后,拿起手机慢悠悠的,一个句子一个句子的看,这才真的理解
caddy 的配置文件叫 Caddyfile
默认的 Header 都已经设置了 X-Forwarded-For X-Forwarded-Proto X-Forwarded-Host
1 2 3 4 5 6 7 8 9 10 11 12
| blog.devsleep.com { reverse_proxy localhost:4000 }
blog.devsleep.com { reverse_proxy blog.devsleep.com { header_up Host {upstream_hostport} } }
|
修改完之后,在 Caddyfile 所在目录运行caddy reload
就可以重新加载配置了
反向代理增加 Basic Auth
第一步需要 hash 一下密码,caddy 不希望我们写明文密码,比如我们的密码是 123456
1 2
| $ caddy hash-password --plaintext 123456 $2a$14$ZTwlgDTKk38.53Z0QhkuJ.iwmOwnK1ggYs2O8M6eT0ivTwTeVXxVS
|
修改配置文件 Caddyfile
后面我们请求的时候,就会需要先输入用户名密码才能访问服务
1 2 3 4 5 6 7
| http: basicauth / { # user: rainbow, password: 123456 rainbow $2a$14$ZTwlgDTKk38.53Z0QhkuJ.iwmOwnK1ggYs2O8M6eT0ivTwTeVXxVS } reverse_proxy localhost:8080 }
|
安装
DEB 安装
1 2 3 4 5 6 7 8 9
| wget https://github.com/caddyserver/caddy/releases/download/v2.6.4/caddy_2.6.4_linux_amd64.deb sudo dpkg -i caddy_2.6.4_linux_amd64.deb
systemctl restart caddy systemctl reload caddy
vi /etc/caddy/Caddyfile
|