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

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

在我们的生产环境中,SSL 被卸载到负载平衡器。这样做是为了减少服务器上的 CPU 负载。

在大多数情况下,这是完全没问题的,但是,我们现在需要服务器知道它们是否通过 SSL 提供页面。

在保持 SSL 卸载不变的情况下,有什么好的方法可以做到这一点?

答案1

您可以添加一个包含该方案的标头发送到后端服务器

例如,使用 NGINX 我会向后端代理服务器发送一个标头,其中包含$方案多变的,

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

相关内容