Caddy介绍
作为新兴 Web 服务器,Caddy 提供了很多简单易用的功能而没有历史的包袱,其默认支持并且能帮你自动配置 HTTP/2、HTTPS,对于 IPV6、WebSockets 都有很好的支持。基于 Go 编写的 Caddy 天生对于多核具有很好的支持,并且其丰富的插件系统提供了文件管理、文件上传、基于 MarkDown 的博客系统等等开箱即用的扩展功能。
安装
官网下载:https://caddyserver.com/download
caddy的下载页面有别于其他的web服务器:允许定制自己需要的插件。 请根据自己的实际需求在官网上配置好脚本。
例如:
$ curl https://getcaddy.com | bash -s personal http.cache,http.geoip,http.realip,tls.dns.cloudflare
快速启动
以Linux为例:
我们将用“example.com”作为例子,需要保证外部可以通过公网访问到80和443端口,并且域名被解析到你的服务器。反之,如果你还没有域名,你可以先使用“localhost”作为替代。
$ sudo setcap cap_net_bind_service=+ep $(which caddy)
$ caddy -host example.com
当第一次使用一个真正的域名(不是localhost)运行Caddy时,会出现提示要求输入你的email地址。这是因为Caddy需要验证你的域名,并将验证信息安全地存储在硬盘上。
Caddyfile配置
Caddyfile是用来配置Caddy如何运行的文本文件。
编辑
proxy
正常的例子如下:
$ vim ../path/to/Caddyfile https://gitlab.example.com { log git.access.log errors git.errors.log { 404 /opt/gitlab/embedded/service/gitlab-rails/public/404.html 422 /opt/gitlab/embedded/service/gitlab-rails/public/422.html 500 /opt/gitlab/embedded/service/gitlab-rails/public/500.html 502 /opt/gitlab/embedded/service/gitlab-rails/public/502.html } proxy / http://127.0.0.1:8181 { fail_timeout 300s transparent header_upstream X-Forwarded-Ssl on } }
cloudflare/dnspod
自动续签证书,下面以cloudflare为例
https://www.XXXXX.com { gzip tls email@example.com tls { dns cloudflare } root /data/wwwroot/www.XXXXX.com/webroot/public/ log /data/httplogs/www.XXXXX.com_access.log }
接下来,确保CloudFlare密钥可用于CaddyServer,这是通过环境变量完成的。编辑/etc/systemd/system/multi-user.target.wants/caddy.service 文件和 [Service] 部分添加两个环境变量:
Environment=CLOUDFLARE_EMAIL=you_email@example.com Environment=CLOUDFLARE_API_KEY=123456abcd123sadfs345sdge4t5fdsg34
启动
$ caddy -conf ../path/to/Caddyfile