下一个 nginx?caddy 自动 https 真香

前言

我们通常在部署 web 服务的时候往往会选择 nginx 作为最前面的一个狠角色,它的性能和能力大家也是有目共睹的,反向代理负载均衡等等。而作为后起之秀 caddy 却不被人所熟知,不过渐渐的也开始展露头角。
今天我就来介绍这个 caddy ,为什么我会称它有可能成为下一个 nginx。

我先列举几个痛点你看下:

  1. nginx 的配置文件你是否感觉有时候有点臃肿
  2. https 需要购买或者申请证书,然后配置是否觉得麻烦?
  3. linux 下安装 nginx 需要部分依赖

而 caddy 确实给我了一种眼前一亮的感觉。

使用

官网:https://caddyserver.com/

安装

https://caddyserver.com/docs/download
安装很简单,直接下载对应的二进制文件即可,或者按照对应到操作系统去安装也可以。没有其他依赖。

使用

https://caddyserver.com/docs/getting-started
一个命令就可以启动,caddy,默认会去当前目录下寻找 Caddyfile 配置文件,也可以通过 --config 去指定文件位置

caddy start
caddy stop
caddy reload

反向代理

https://caddyserver.com/docs/caddyfile/directives/reverse_proxy

https://www.xxxx.com {
  reverse_proxy /api/user* {
    to 192.168.1.101:9000
  }
}

静态文件

https://www.xxxx.com {
  root * /home/linkinstar/www
  file_server
}

外网服务使用 https

https://caddyserver.com/docs/quick-starts/https

https://caddyserver.com/docs/automatic-https

caddy 最让我惊讶的是自动的 https 功能,只要你有一个可以正常访问的域名,将域名指向你外网服务器对应的 ip,然后向上面一样配置好 Caddyfile,只要域名一致,https 就完成了,不需要你额外申请证书,不需要做其他任何的操作,真的很棒👍,可谓是懒人必备

原理是,它会去 https://letsencrypt.org/ 调用对应的接口去申请证书,这是一个免费证书的申请网站,

本地使用 https 证书

当我们的一些内网服务器需要使用 https 证书的时候,怎么办呢?因为内网的服务器没有公网 IP,caddy 去 letsencrypt 申请证书的时候无法验证,所以需要曲线救国。前提你需要一个域名。https://zhuanlan.zhihu.com/p/63412372

申请证书

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

certbot-auto --manual --preferred-challenges dns certonly

接下来根据提示依次输入域名,和一些提示,一般输入y表示同意即可,知道让你去添加一条 txt 解析记录并验证的时候

将证书输出验证内容进行 dns 解析配置

image.png

配置完成之后会在 /etc/letsencrypt/live/xxx.com 目录下生成对应的公钥私钥

配置Caddyfile

xxx.com:443 {
  tls /etc/letsencrypt/live/xxx.com/cert.pem /etc/letsencrypt/live/xxx.com/privkey.pem
}

性能比较

https://caddy.community/t/siege-benchmarks-nginx-vs-caddy-identical-systems/2962

从性能上来说,确实 nginx 要更胜一筹,而且官方也承认(毕竟 nginx 的设计就是干这个的)

不过从比较的数据上来说,能让普通用户使用很满意了,并没有一定需要追求极致的性能体验,毕竟免费的 https 已经有点香了

总结

优点

  1. caddy 发挥了 go 传统的优势安装没有依赖,使用方便
  2. 自动化的 https 证书的申请,很让人舒服
  3. 配置项更加清晰和简单,一目了然

缺点

  1. 性能比 nginx 略逊一筹
  2. 重启的时候 https 会重新申请,会有短暂的停顿
  3. 使用案例少了一些

总的来说,如果你正需要一个免费方便的 https 的网关,那就试试 caddy 吧,一定不会让你失望的,而 caddy 也慢慢在发展,虽然从设计角度讲模型可能不如 nginx,但是从使用角度讲,可能我后续更偏爱 caddy 一些

参考博客

https://segmentfault.com/a/1190000022733237

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342