一个比 Nginx 功能更强大的 Web 服务器( 四 )

mritd.me.caddy
mritd.me.caddy 为老站点配置,目前主要将其 301 到新站点即可 。
www.mritd.me {    # 重定向到 mritd.com    # 最后的 "code" 支持三种参数    # temporary => 302    # permanent => 301    # html => HTML document redirect    redir https://mritd.com{uri} permanent    # 日志    import LOG "/data/logs/mritd.com.log"    # TLS、HSTS、ACME 等通用配置    import COMMON_CONFIG}mritd.me {    # 重定向    redir https://mritd.com{uri} permanent    # 日志    import LOG "/data/logs/mritd.com.log"    # TLS、HSTS、ACME 等通用配置    import COMMON_CONFIG}启动与重载
配置文件编写完成后,通过 systemctl start caddy 可启动 caddy 服务器;每次配置修改后可以通过 systemctl reload caddy 进行配置重载,重载期间 caddy 不会重启(实际上调用 caddy reload 命令),当配置文件书写错误时,重载只会失败,不会影响正在运行的 caddy 服务器 。
总结本文只是列举了一些简单的 Caddy 使用样例,在强大的插件配合下,Caddy 可以实现各种 “神奇” 的功能,这些功能依赖于复杂的 Caddy 配置,Caddy 配置需要仔细阅读官方文档,关于 Caddyfile 的每个配置段在文档中都有详细的描述 。
值得一提的是 Caddy 本身内置了丰富的插件,例如内置 “file_server”、内置各种负载均衡策略等,这些插件组合在一起可以实现一些复杂的功能;Caddy 是采用 go 编写的,官方也给出了详细的开发文档,相较于 Nginx 来说通过 Lua 或者 C 来开发编写插件来说,Caddy 的插件开发上手要容易得多;Caddy 本身针对数据存储、动态后端、配置文件转换等都内置了扩展接口,这为有特定需求的扩展开发打下了良好基础 。
最终总结,综合来看目前 Caddy2 的性能损失可接受的情况下,相较于 Nginx 绝对是个绝佳选择,各种新功能都能够满足现代化 Web 站点的需求,真香警告 。





推荐阅读