这是什么意思(如果有人可以简单地解释)“Varnish 本身不支持 SSL 终止”
这意味着 Varnish 没有对 SSL 的内置支持。除非 SSL 由单独的软件处理,否则它不能在带有 SSL 的路径中运行。
这是 Varnish 的作者在架构上做出的决定,他早在 2011 年就讨论了将 SSL 集成到 Varnish 中的想法。
他基于许多因素,其中最重要的一点是希望这样做正确,同时观察到 SSL 的事实上的标准库是 openssl,这是一个超过 300,000 行代码的错综复杂的收集,他对代码库既没有信心,也对有利的成本/收益比的可能性没有信心。
他当时的结论,一句话,“不”。
这不是我小时候梦想做的事情之一,如果我现在做梦,我会称之为噩梦。
https://www.varnish-cache.org/docs/trunk/phk/ssl.html
他在 2015 年重新审视了这个概念。
他的结论还是“不”。
代码很难,加密代码是双加难,如果不是双平方难的话,世界真的不需要另一段在密码学方面做得半途而废的代码。
...
当我看到像 Willy Tarreau 的 HAProxy 这样的东西时,我很难看到任何重大的改进机会。
不,Varnish 仍然不会添加 SSL/TLS 支持。
在 Varnish 4.1 中,我们增加了对 Willys PROXY 协议的支持,这使得从 SSL 终止代理(例如 HAProxy)到 Varnish 的额外细节通信成为可能。
https://www.varnish-cache.org/docs/trunk/phk/ssl_again.html
此增强功能可以简化将 varnish 集成到具有加密要求的环境中,因为它提供了另一种机制,用于在卸载的 SSL 设置中保留原始浏览器的身份。
这个场景使用 varnish 来实现好吗?
如果您需要 Varnish,请使用它,注意 SSL 必须单独处理。但是请注意,这并不一定意味着未加密的流量必须遍历您的网络……尽管这确实会导致设置更加复杂和 CPU 消耗量大。
没有其他东西可以用作 SSL-Terminator(或者可以是?)
SSL 可以在 Varnish 的前端卸载,并在 Varnish 的后端重新建立,都在运行 Varnish 的同一台机器上,但通过单独的进程,使用 HAProxy 或 stunnel或 nginx 或其他解决方案,在 Varnish 前后。任何明确的流量都在一台主机的范围内运行,因此如果主机本身是安全的,则可以说不是漏洞点,因为它永远不会离开机器。
如果 varnish 不是一个好的竞争者,我应该切换到其他反向代理
这完全取决于您在堆栈中想要和需要什么、它对您的成本/收益、您的专业水平、资源的可用性以及其他因素。每个选项都有自己的一组功能和限制,在同一个堆栈中使用多个选项当然不是闻所未闻的。