来源丨经授权转自 古时的风筝(ID:gushidefengzheng)作者丨了风筝
Nginx 想必每一个开发都听说过吧,一个高性能的反向代理服务器和负载均衡器,同时也是一个轻量级的 Web 服务器,常用于处理并发连接和静态资源服务。
作为一个开发,在你拥有一台自己的服务器之前,可能只有极少数的人自己配置过 Nginx,大多数都停留在简单了解的层面上。
而当你有了自己的服务器后,初次使用 Nginx 大概率会觉得有点繁琐。但是繁琐也没有什么好方法,就是孰能生巧的事儿。以我的经验来讲,其他的配置都还好,复制粘贴基本上没什么问题,最烦人的地方就是HTTPS 协议的 SSL 证书。
但是还是有人觉得不够方便。如果纯站在技术角度的思考,Nginx 结合上面的两种自动证书续期的方式已经很方便了。但是,抛开技术不谈,我们有了自己的服务器要干什么呢,比如搭建个人博客、部署自己的产品,在这样的场景下,稳定快速的上线才是我们的最终目的,中间的环节当然是越快越简单最好了。
基于这样的目的来考虑,最方便的方式是让 Nginx 自动就支持 HTTPS,或者说自带证书,这样就最好了。
但是很可惜,Nginx 目前没有这样的功能,不过有另外一个产品既能当服务器又自带证书,那就是 Caddy。
Caddy
Caddy 和 Nginx 类似,也是 Web 服务器和反向代理服务器。在国内用的比较少,但是在国外很多知名产品都在用。
官网:https://caddyserver.com/
![](http://mmbiz.qpic.cn/sz_mmbiz_png/iaWSDo4TfyZhDNsEUicEVFMZfb46cWK26rufS2cFyicPekQKT8GRQic92bzJzLLtiblibDAe5Ric1LYKZ9RjY2hibmIRNw/640?wx_fmt=other&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
1、Caddy 的设计理念是“开箱即用”,默认内置 Let's Encrypt ,自动支持 HTTPS。并且自动处理 TLS 证书的获取和续订,减少了配置复杂度。
这就是上面说的 Nginx 的痛点,当你部署好 Caddy 时,就不用考虑购买证书、续订的事儿了。
2、Caddy 使用简单的 Caddyfile 作为配置文件,也就是Nginx中的 conf 配置文件,但是语法比 Nginx简洁很多。
下面是 Caddy 和 Nginx 配置的对比,Caddy 比 Nginx 简洁,而且Nginx要想支持 HTTPS,还要配置好几行,包括证书位置和使用的算法等。
更多的配置可到官网 https://caddyserver.com/docs/caddyfile 获取。
Caddy 配置,(自动启用 HTTPS,托管静态文件)
example.com {
root * /var/www/html
file_server
}
Nginx 配置
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
(默认使用 HTTP,若要启用 HTTPS,需要手动配置 ssl_certificate
和 ssl_certificate_key
)
3、和 Nginx 一样,Caddy 也有插件系统丰富,可动态加载模块。
4、支持 HTTP/3、反向代理、负载均衡和静态文件托管,并且Caddy 是第一款内置支持 HTTP/3 和 QUIC 的 Web 服务器
和 Nginx 的区别
Caddy 的性能虽然也不错,但在极端高负载环境中,通常表现略逊于 Nginx。Nginx 支持更广泛的 企业级场景,如复杂的负载均衡、缓存策略和请求限速。
对于小型项目或需要快速部署 HTTPS,Caddy 是一个不错的选择,比如我们的个人博客,自己做的产品。
对于大型企业级应用,Nginx 仍然是成熟的选择。
最后
如果你有自己部署服务的需求,不妨试试 Caddy。
只能说学习成本极低,部署效率极高,而且不用浪费精力搞 HTTPS 证书。