在我们的生产环境中,SSL被卸载到负载均衡器。 这样做是为了减less服务器上的CPU负载。
大多数情况下,这是非常好的,但是,我们现在需要服务器知道他们是否通过SSL提供页面。
什么是这样做的好方法,但保持SSL卸载到位?
您可以添加发送到包含该scheme的后端服务器的标头
例如,使用NGINX,我会使用$ schemevariables向后端代理服务器发送一个头文件,
proxy_set_header Scheme $scheme;
然后在你的后端应用程序中,你可以得到标题;
if ( this.request.getheader('Scheme') is 'http' ) { this.response.send('HTTP!') } otherwise ( this.request.getheader('Scheme') is 'https' ) { this.response.send('HTTPS!') }
你使用什么样的负载平衡器? 我相信在大多数软件中会有类似的方法,我只是碰巧知道NGINX