最近公司在考虑是否用 Caddy 替换 Nginx, 对 Caddy 我就大概看了基础部分的内容, 还有很多不确定的地方. 希望通过 V2 得到一些建议, 谢谢.
1 seakingii 2022-05-17 19:43:38 +08:00 ![]() 没有必要。和 NGINX 比,没有非 CADDY 不用的场景。 |
2 hdp5252 2022-05-17 19:46:08 +08:00 via Android 为什么要换,nginx 无法满足需求 caddy 可以? |
![]() | 3 phithon 2022-05-17 19:46:24 +08:00 个人项目已经换了,比较方便容器化 |
4 statumer 2022-05-17 19:59:21 +08:00 via iPhone 如果你需要自动配置,服务发现,可以用 envoyproxy 如果你需要自定义逻辑处理,可以用高性能的 ngx-php(一个 nginx 扩展,类似于 openresty) 有什么理由用 caddy 呢? |
![]() | 5 Herry001 2022-05-17 20:00:52 +08:00 没必要,这玩意配置一次基本不用改……而 Caddy 并没有显著的优势。 |
![]() | 6 除非你们团队擅长用 Go ,并且有对 Canddy 有二次开发的需求,否则肯定优先选 Nginx (我们公司用 OpenResty 和 Tengine |
7 moen 2022-05-17 20:20:43 +08:00 ![]() 我能想到 Caddy 的一个好处就是可以不用自己提供 SSL 证书开启 HTTPS |
![]() | 8 saltbo 2022-05-17 20:22:12 +08:00 ![]() 我本来很喜欢 caddy 但是每次当我有点复杂需求的时候 他总让我去官网选择插件下载包含这个插件的版本 我就很烦 |
![]() | 9 liuzhaowei55 2022-05-17 20:48:16 +08:00 via iPhone 完全没有必要,容器化简单点可以用 traffic |
![]() | 10 cmdOptionKana 2022-05-17 20:59:05 +08:00 ![]() 如果没有复杂的需要,只是 1.静态网站 2.反代, 推荐用 Caddy 方便。 举个例子,安装 Caddy 后,vim /etc/caddy/Caddyfile blog.example.com { root * /home/user/blog/ file_server } abc.example.com { reverse_proxy 127.0.0.1:8080 } 然后 systemctl reload caddy 这样就有了一个静态站和一个反代网站,都是 https ,这就是一切操作,不需要其他任何操作。 如果你有比较复杂的需求,可能 nginx 好点,毕竟网上资料多,解决问题方便。 |
![]() | 11 chinni 2022-05-17 21:15:58 +08:00 如果 caddy 只是用来反代 啥的 haproxy 也很可以的 |
![]() | 12 yuekcc 2022-05-17 21:38:23 +08:00 对比过 caddy 、nginx 、traefik proxy 。 caddy 的好处就是自带 auto https 功能、静态文件服务( traefik proxy 没有内置),配置也比较省事; traefik 也支持 letsencrypt 支持,更倾向反向代理场景,动态配置比较方便,和 docker 配合也很容易。 可是,但凡有点性能需要,应该首选 nginx 。nginx 也支持 letsencrypt ,看着配置比较复杂。 |
13 T0m008 2022-05-17 21:39:43 +08:00 没必要,最熟悉的一般是最好的。 |
![]() | 14 love4taylor PRO 你自己也问是 “必要” 了,自己对比下两边如果没有你需要的功能为啥要换。 |
![]() | 15 billzhuang 2022-05-17 22:52:20 +08:00 要么 envoy 要么 traefik |
![]() | 16 ysicing 2022-05-17 23:04:31 +08:00 caddy v2 版本感觉不太好用,还是 v1 版本好用。caddy 给我感觉唯一的好处就可以不用手动签发证书,开发自定义插件但是用途不大。 |
![]() | 17 masterclock 2022-05-17 23:09:08 +08:00 用过 caddy ,没有过好的回忆 |
18 Remember 2022-05-17 23:09:22 +08:00 caddy 难道不是个人用的玩具?性能,稳定性,生态之类的有 nginx 好吗? |
![]() | 19 wonderfulcxm 2022-05-17 23:12:40 +08:00 via iPhone 我换成了 openresty ,不用改原来 nginx 配置,可玩性高了很多,lua-auto-ssl 也可以自动申请和续期 ssl 证书。 |
![]() | 20 kongkongyzt 2022-05-17 23:36:09 +08:00 完全没必要 |
21 jiuhuicinv 2022-05-17 23:41:09 +08:00 没必要把 |
22 roundgis 2022-05-17 23:41:32 +08:00 我用 caddy 纯粹是为了蹭 https 它还有一个好处,可以在 windows 下运行 |
23 zvittt 2022-05-17 23:46:38 +08:00 我自己的服务是用 Caddy + Docker Compose 部署的,HTTPS 证书签发方便,不用我操心 |
![]() | 24 xServ 2022-05-17 23:54:34 +08:00 via Android nginx yyds |
25 dcsuibian 2022-05-18 01:58:30 +08:00 看了一下评论,不用学新东西真是太好了 |
![]() | 26 PolarBears 2022-05-18 02:49:48 +08:00 要不考虑换 OpenResty 吧,最近我也从 Nginx 换到 OpenResty 上了 |
![]() | 27 xyjincan 2022-05-18 05:19:16 +08:00 via Android 感觉这个更安全,输入不符合的域名无法访问资源 |
28 arischow 2022-05-18 06:51:44 +08:00 via iPhone 这个更换能解决你们什么需求或者说有什么用户价值?考虑到这是一个公司项目 |
30 v2defy 2022-05-18 08:13:01 +08:00 via Android Caddy 用过一点,感觉不是太好 |
![]() | 31 IvanLi127 2022-05-18 08:15:19 +08:00 via Android caddy 感觉上比较安全现代,简单用用还是很不错的。复杂场景下似乎功能不如 nginx 全,周边也不够全。 |
32 krixaar 2022-05-18 08:22:51 +08:00 没必要,caddy v1 那会儿图个方便,caddyfile 写那么几行啥都搞定了,caddy v2 配置变复杂了,果断切回 nginx+certbot 。 如果 certbot 能修好续签时不时崩掉 nginx 的那个 bug 就完美了。 |
![]() | 33 vishun 2022-05-18 08:54:18 +08:00 @seakingii #1 有的,在 windows 下,nginx 就是各半成品,性能比不上 caddy ,当然还是 iis 性能最高。 |
![]() | 34 sugars PRO 先说说你们更换的原因? |
35 mepwang 2022-05-18 09:02:33 +08:00 docker 映像 jrcs/letsencrypt-nginx-proxy-companion 也能自动更新证书,也不需要配置 |
![]() | 36 olaloong 2022-05-18 09:25:33 +08:00 之前想换 Caddy ,结果配置愣是没看明白,劝退 还是 Nginx 香 |
37 northernlights0 2022-05-18 10:05:50 +08:00 没必要吧,caddy 就是胜在语言用的是 golang 以及配置简单。性能上 nginx 优于 caddy 。 |
![]() | 39 ragnaroks 2022-05-18 10:36:33 +08:00 两者没有可比性,但是既然楼主问了,就代表心里是想替换的,这里建议从心 |
40 thinkershare 2022-05-18 10:57:18 +08:00 @seakingii 和你所在的行业有关系, 我们这个行业使用 Linux 才是非主流, 基本清一色 Windows Server 2016, 没有专业运维, 使用 Linux 纯粹是给自己找麻烦! |
41 missdeer 2022-05-18 10:58:38 +08:00 个人从 nginx 切到 caddy v1 ,后来 caddy v2 出来了居然配置文件大变,切回 nginx 美滋滋 |
42 missdeer 2022-05-18 11:01:01 +08:00 @vishun 既然用 Windows 了,那就用 IIS 呀,如果可以不用 IIS ,说明也不那么在乎性能,nginx 损失的那些性能也能接受了 |
![]() | 43 zoharSoul 2022-05-18 11:06:52 +08:00 @thinkershare #40 啥行业啊? 好奇问一下 |
44 neoblackcap 2022-05-18 11:10:26 +08:00 @saltbo 没办法,没法动态加载库 |
45 thinkershare 2022-05-18 11:25:23 +08:00 @zoharSoul ZF 部门, 公共资源交易中心, 还有一些是涉密的, 不方便说. |
![]() | 46 dingyaguang117 2022-05-18 11:28:08 +08:00 没必要,查文档找问题没有 nginx 资料多 |
![]() | 47 yaoyaomoe 2022-05-18 11:51:27 +08:00 via iPhone 没必要 caddy 的最大优势是现在可能就是反代加 https 基本傻瓜化 如果你不用自动更新证书的话个人觉得 nginx 更好用…… |
![]() | 48 iyaozhen 2022-05-18 12:19:54 +08:00 没必要吧,这也太吃饱了撑着。不搞出几个线上问题,不舒服? |
![]() | 49 Kinnice 2022-05-18 12:27:33 +08:00 是想要创造几个线上事故? |
50 qbqbqbqb 2022-05-18 12:35:18 +08:00 caddy 主要卖点就是自动申请和续签免费 https 证书,如果用不到的话没必要换 |
![]() | 51 VagrantZ 2022-05-18 12:36:58 +08:00 nginx 似乎是没法反代 http2 ,caddy 好像可以? |
52 whx 2022-05-18 12:43:08 +08:00 via iPhone 感觉 caddy 和 nginx 比,像个玩具。 开发团队很激进,更新一个版本就各种大改。 简单的需求用 caddy 可能比 nginx 简单,几行配置证书什么的都给你搞定。 如果有些稍微复杂一点的需求,就要自己去编译。 比如一个日志自定义格式化,研究了好久。最后得出结论,要自己去编译。之前的版本是支持的,后来更新了去掉了。 之前用 nginx 我都是直接 apt update ,从来没出过问题。 用 caddy 升级版本前我都得反复确认,不知道升级了哪些功能就被去掉了。 |
![]() | 54 daydaysay 2022-05-18 12:47:42 +08:00 为什么 nginx 性能就高于 caddy 。 只因为 nginx 是 C 写的? |
55 xumng123 2022-05-18 15:07:46 +08:00 via iPhone 没必要 |
![]() | 56 Te11UA 2022-05-18 15:09:30 +08:00 @PolarBears #26 为什么用 openresty 呢? |
![]() | 57 leeyuzhe 2022-05-18 15:13:01 +08:00 我个人网站用的 caddy ,公司不推荐,因为对比 nginx 没有非用不可的理由 |
![]() | 58 bipy 2022-05-18 16:04:34 +08:00 别换 坑太多 |
59 bugfan 2022-05-18 16:42:08 +08:00 3 ,4 年不用 nginx 了,一直都是用 golang 自己实现的代理,签发证书,tls 加载卸载,日志审计,访问规则等等 |
60 ungrown 2022-05-18 16:48:05 +08:00 @yaoyao1128 #47 nginx 自动更新 letsencrypt 的证书也挺方便 证书用 webroot 方式创建、更新(剩下的交给 certbot 自带的 cron 任务) certbot 配置里面加个 renew 的 hook ,重启 nginx (重新加载更新后的证书) 然后最最关键的就是在 nginx 每个站点配置里加一个特殊的 location ,写成 snippet ,直接在每个 http 的 server 里面 include https://github.com/mo-han/mo-han-toolbox/blob/master/etc/nginx/snippets/location-acme-challenge https://github.com/mo-han/mo-han-toolbox/blob/master/etc/nginx/snippets/location-acme-challenge-with-fallback |
![]() | 61 PolarBears 2022-05-18 17:02:06 +08:00 @Te11UA #56 陈旧的应用系统没有维护但又有漏洞,我就用 OpenResty 来修补漏洞 |
![]() | 63 Te11UA 2022-05-18 17:08:54 +08:00 如果仅仅是因为 https 的话,用 certbot 加个定时任务不就可以了吗 |
![]() | 64 pursuer 2022-05-18 20:37:29 +08:00 nginx 在 windows 性能不好吗?什么原因?我记得 windows 下面是用的 IOCP ,性能应该不差的吧 |
65 drackzy 2022-05-18 22:04:08 +08:00 Caddy 出点 bug 折腾死。基础的没必要换成 Go 的轮子。 |
![]() | 66 among 2022-05-18 22:08:40 +08:00 作为绿色版程序用挺好。简单测试使用够了。 |
![]() | 67 bankroft 2022-05-18 22:10:43 +08:00 自用我从 caddy 换成了 traefik |
![]() | 68 JQSM 2022-05-18 22:23:42 +08:00 caddy v2 之后配置复杂了很多,既然都复杂那还是用 nginx 比较好,网上资料多,出问题容易解决。 |
![]() | 69 yun 2022-05-18 22:49:50 +08:00 用了两年 Caddy ,从 1 到 2 ,确实不错,但不适合复杂的网络环境。 譬如 rewirte 不好弄,有时候还会死机,重启 caddy 才能访问网站。 |
![]() | 70 padeoe 2022-05-18 22:53:01 +08:00 给公司团队用上 Caddy 一年了。最重要的原因"Caddy: Web Server for Humans",语法人性化,各岗位开发都容易上手,基于此实现了网关配置 Devops 。 |
![]() | 71 adoal 2022-05-19 00:57:04 +08:00 via iPhone @PolarBears 哈哈,我也在搞这事。nginx 跑起 lua mod 后简直就是一个丐版 waf |
72 ingnoscemihi 2022-05-19 02:04:23 +08:00 没有吧,如果你们网络不复杂倒是可以用,比如个人站什么的,复杂业务应该不适合 |
![]() | 73 billzhuang 2022-05-19 11:11:08 +08:00 nginx 对我来说,痛点是,这个 health check 有点拉跨。 |
![]() | 74 1988chg 2022-05-19 11:59:02 +08:00 没必要 实话说。 |