如何偵測負載平衡器後面的伺服器上的 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

相關內容