在 AWS 網路負載均衡器後面將 HTTP 重寫為 HTTPS 時的 Apache 重定向循環
現有的解決方案對我沒有幫助,所以我必須遺漏其他東西。
所以我試圖在 AWS 網路負載均衡器後面設置一個使用 Apache 2.4/CentOS 7 的網站。
我在 httpd.conf 中使用它來重寫 HTTP->HTTPS,這也被認為是僅在 AWS 的負載均衡器後面實現 HTTPS 的正確方法。
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule .* <https://%>{SERVER_NAME}/$1 [L,R=permanent]
我的伺服器的 DNS 名稱在哪裡
SERVER_NAME
,它解析為負載均衡器的 IP 地址。
<https://%>{HTTP:Host}/
也試過不成功。沒有這個,訪問伺服器是沒有問題的(當然可以使用 HTTP 除外)。
由於負載均衡器是客戶端的加密端點,我只在網路伺服器上的 80 埠上監聽。這是 AWS 的預期實施方式。
然而,使用這個,伺服器將無休止地重定向我的請求,直到瀏覽器放棄。最初嘗試連接 HTTPS 時也會發生這種情況**。**
Apache 的調試級日誌輸出沒有顯示任何錯誤,只是請求超時並且負載平衡器日誌也不是很有幫助。但也許你可以從中理解。
我也想過 SELinux 會造成麻煩,但它被設置為允許的。所以它實際上不應該做任何事情。
Apache access_log:https ://textuploader.com/10cjh
Apache 錯誤日誌:https ://textuploader.com/10cjx
負載均衡器:https ://textuploader.com/10cjg
非常感謝任何幫助。
因此解決方案是使用 Application Load Balancer 而不是 Network Load Balancer。