2013-05-30 62 views
2

我想配置Varnish以使用HTTPS(!)服务作为后端服务。这里的关键是连接到后端服务的SSL部分!我对这些HTTPS后端服务的控制有限(将其视为托管在云中的SaaS服务)。将Varnish与SaaS HTTPS后端服务器结合使用?

是这样的一个设置:用户代理 - > AWS ELB的SSL终结 - >光油在AWS - > HTTPS云的SaaS服务

人员说,原因如下: - 我想使用Varnish ESI以我自己的自定义页眉&页脚装饰SaaS服务UI。 - 通过让所有请求都通过Varnish,我可以获得有关SaaS服务的其他分析数据,否则我将无法获得 - 我可以使用Varnish重新编写SaaS服务的URL,从而有效地隐藏SaaS服务URL - 用户

我能够使用AWS ELB作为SSL终结器用于用户代理,但是如何获得Varnish以作为源服务器访问HTTPS SaaS服务?

背景: 我在一个门户网站上工作,我们将向客户展示许多不同的服务(所有服务都有自己的现有用户界面,即他们没有无头的RESP API!)。将所有这些服务集中在一起的主要事项是共同的页面页眉和页脚(页面标题显示顶级导航和登录/用户名注销)。

我们拥有的服务类型如下,都有自己的UI层,我们不想复制: - 白色标签的第三方SaaS服务(想想如Zendesk或Salesforce),托管在云 - 自主研发的,其在AWS 主办的JavaEE/Spring服务 - 在我们公司的其他团队开发的服务,但他们都在我们自己的数据中心托管

添加ESI包括优良的那些服务中的,但我不希望为每个服务重复多次重新实现页眉/页脚的工作。

+0

我刚看到这篇文章:https://komelin.com/articles/https-varnish – zx1986

回答

6

不支持在光油中访问HTTPS后端。清漆讲HTTP到后端。

如果您想访问HTTPS后端内容,则必须通过添加/去除HTTPS的另一个后台驻留程序/代理进行代理。有很多选择,其中之一是stunnel这是经过尝试和测试。

从你正在描述的内容(重写内容)我会说你很接近使用错误的锤子。清漆可能不是最好的工具,你有没有考虑用mod_rewrite/mod_substitude来粘合东西?

+0

删除与SSL终结者TLS,然后用安全通道readding它?纠正我,如果我错了,但对我来说似乎是不合逻辑的,或者我应该说矫枉过正?我的意思是你想使用缓存来让你的应用程序更快,但由于使用了SSL Terminator和stunnel以及其他资源来使其工作,所以需要使用大量额外的CPU周期。这也增加了额外的网络延迟,我想知道这些配置(SSL终止器和信号通道)会带来多少性能增益。 – sotn

5

最近我遇到了类似的需求,需要使用https访问所需的后端。

当然,有很多反对意见可以提出,为什么这是做错的方法......但在这种情况下,我受到这样的事实的约束,即我需要将数据加密到后端,重要的地理距离以及由于各种系统的所有权和控制权而无法实现VPN的事实。

这是一个解决方法,从我的有限测试似乎有潜力使用stunnel4解决此问题。从配置

采样线:

client = yes 
[mysslconnect] 
accept = 8888 
connect = dest.in.ation.host.or.ip:443 

现在,stunnel4被监听端口8888我的地方(漆)的机器上,并且每一个进入的连接到达时,它建立一个SSL连接到端口443在远程系统上。

到本地服务器上的127.0.0.1端口8888的连接允许我向目标后端服务器发送明文HTTP,并且这是通过实际由stunnel4管理的SSL连接发生的......因此将清漆配置为使用127.0.0.1:8888作为后端做我想要的,因为varnish认为它是对一个普通的http服务器说话,不知道stunnel4代表它做了什么。

我不能保证本作的可扩展性和可靠性,因为我刚刚没有得到它的工作,但到目前为止,它似乎是一个可行的解决方法,以这种限制清漆。

+0

此方法的可靠性或可伸缩性的任何更新? – chmac

+0

@chmac此设置的stunnel4方面已经完美地工作,因为我设置了它...尽管在我发布这个之后不久,我将负载平衡器本身从清漆切换到haproxy--它在后端具有完全相同的限制版本1.4中的SSL是清漆,所以我仍然以同样的方式使用stunnel4。我没有任何清漆问题或任何迫切的理由改用haproxy--我当时实际上都在评估这两款产品,并且此应用程序不需要缓存,所以我选择了最轻量级的选项。 –

+0

真棒,感谢您的更新,感谢它。我遇到了一些SNI问题,但我会把它们弄清楚...... :-) – chmac

相关问题