← 全部对比

CasWAF 与 Nginx 对比

Nginx 是Web服务器和反向代理,这两件事做得很好。CasWAF 是一个顺带做防火墙的反向代理。在 Nginx 前面加 WAF 通常意味着加 ModSecurity 或 Coraza、一套规则、证书续期的办法,以及请求被拦时看日志的地方。CasWAF 把这些放进一个程序,设置存在数据库里,再加管理界面、请求记录和单点登录。

一览

CasWAFNginx
是什么反向代理,带防火墙、管理界面和单点登录Web服务器和反向代理
防火墙自带:IP、路径、频率、验证码规则,以及 Coraza 上的 SecLang不自带,要加 ModSecurity、Coraza 或 njs 和 Lua
怎么配置管理界面,设置存在 MySQL,所有节点共用配置文件,改完 reload
证书手动上传,或按域名用 Let’s Encrypt 自动签发和续期Certbot 或手动放文件
管理界面、记录、看板自带,按站点告警没有,日志写到文件或日志系统
站点的单点登录任何站点前面都可以加 Casdoor 登录,不用改应用没有,要 auth_request 模块或外部服务
许可证Apache-2.0BSD-2-Clause,Nginx Plus 是付费产品

CasWAF 不一样的地方

不用拼模块就有防火墙

按 IP 段、国家、User-Agent 或路径拦截,按地址限流,验证码,这些在管理界面里都是规则类型。在 Nginx 上每一样都意味着另一个模块、另一个文件、又一次 reload。

改站点不用改文件

加域名、换证书、加跳转都是管理界面里的表单,几秒内所有网关节点生效。没有配置需要套模板、在服务器之间复制或手工校验。

看得见进来的流量

请求按站点记录,有按时间的流量看板,站点不响应时发邮件或短信。用 Nginx 时这是一条另外搭的日志链路。

在应用前面加登录

任何站点都可以放在 Casdoor 登录后面,不用改应用,多因素认证、LDAP 和第三方登录都来自 Casdoor。在 Nginx 上是 auth_request 加你自己写的一个服务。

多台机器,一份配置

节点连同一个数据库,服务同一批站点,这是常规用法,而不是一堆各自手工维护的配置。

Nginx 领先的地方

吞吐量和成熟度

Nginx 每核处理的流量更多,在生产里被调了二十年。CasWAF 是一个带数据库的 Go 程序,不声称能比。

作为Web服务器强得多

缓存、压缩、对缓冲和超时的精细控制、大规模静态文件服务、TCP 和 UDP stream,这些都是 Nginx 有而 CasWAF 没有的。

模块和文档

Nginx 的模块生态,以及关于它每个角落的写作量,都不是一个年轻项目能比的。

你已经在用它

如果 Nginx 跑得好好的,防火墙也不是你的问题,继续用是合理的答案。

怎么选

  • 需要防火墙、管理界面和单点登录,又不想加模块:CasWAF。
  • 要扛大量静态流量,或者需要缓存、stream、CasWAF 没有的模块:留着 Nginx,把 CasWAF 放在它或者它后面的应用前面。
  • 管很多站点,想把它们放进一个管理界面:CasWAF。
  • 习惯改配置文件,只要原始性能:Nginx。

相关页面

在一台机器上试试 CasWAF

需要 Go、Node.js 和 MySQL,管理界面还要一个 Casdoor 应用,网关默认监听 17000 端口。