这是情况。 我有一个安全的networking(https)与多个后端交谈的客户端。 现在,我想build立一个主要的负载平衡(基于头数据或cookies)和一点caching的反向代理。 所以,我认为清漆可能是有用的。
但是,清漆不支持SSL连接。 正如我在很多地方所读到的,引用"Varnish does not support SSL termination natively"
。 但是,我想要每一个连接,即。 client-varnish和varnish-backend通过https。 我不能在整个networking中的任何地方有明文数据(有限制),所以没有其他的东西可以用作SSL终结者(或可以?)。
所以,这里是问题:
这是什么意思(如果有人可以简单地解释)“清漆本身不支持SSL终止”
这意味着Varnish没有内置的SSL支持。 它不能在具有SSL的路径中操作,除非SSL由单独的软件处理。
这是Varnish作者的一个架构决定,他在2011年讨论了他将SSL集成到Varnish中的设想。
他以很多因素为基础,其中最重要的一点就是,如果可以的话,他们认为事实上的SSL标准库是openssl,这是一个超过30万行代码的迷宫式集合,他对这个代码库没有信心,也没有一个有利的成本/收益比的可能性。
当时他的结论是“不”。
这不是我小时候梦想做的事情之一,如果现在我梦想,我把它称为一场噩梦。
他在2015年重新审视了这个概念。
他的结论再次是“不”。
代码是很难的,加密代码是双加硬的,如果不是双平方的,那么世界真的不需要另外一个在密码学上做一半工作的代码。
…
当我看到像Willy Tarreau的HAProxy这样的东西时,我很难看到有什么重大的改进机会。
不,Varnish仍然不会添加SSL / TLS支持。
相反,在Varnish 4.1中,我们增加了对Willys PROXY协议的支持,使得可以将SSL终止代理(如HAProxy)的额外详细信息传递给Varnish。
此增强功能可以简化将清漆集成到具有加密要求的环境中,因为它提供了另一种机制,用于在卸载的SSL设置中保留原始浏览器的身份。
这种情况很好实施使用清漆?
如果你需要清漆,使用它,知道SSL必须分开处理。 但请注意,这并不一定意味着未加密的流量必须穿越您的网络…虽然这确实会导致更复杂的CPU和昂贵的设置。
没有别的可以用作SSL终结者(或可以?)
SSL可以在清漆的正面卸载,并且在清漆的背面重新建立, 全部在运行清漆的同一台机器上,但是通过单独的工艺,使用HAProxy或者stunnel或者nginx或者其他解决方案,在油漆后面。 任何明确的流量都在一台主机的范围内运行,因此,如果主机本身是安全的,则可以说不是脆弱点,因为它永远不会离开机器。
如果清漆不是一个好的竞争者,我应该切换到其他反向代理
这完全取决于你想要什么,需要什么,你的成本/收益,你的专业水平,资源的可用性和其他因素。 每个选项都有自己的一套功能和限制,在同一个堆栈中使用多个选项当然不是前所未闻的。