如何在负载均衡器后面的服务器上检测SSL卸载?

在我们的生产环境中,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