haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經(jīng)不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認是會對進來的請求的屬性進行猜測的:
- private function _is_https() {
- // PHP 標準服務(wù)器變量
- if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
- return true;
- }
- // X-Forwarded-Proto 事實標準頭部, 用于反代透傳 HTTPS 狀態(tài)
- if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') {
- return true;
- }
- // 阿里云全站加速私有 HTTPS 狀態(tài)頭部
- // Git 意見反饋 https://gitee.com/Discuz/DiscuzX/issues/I3W5GP
- if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && strtolower($_SERVER['HTTP_X_CLIENT_SCHEME']) == 'https') {
- return true;
- }
- // 西部數(shù)碼建站助手私有 HTTPS 狀態(tài)頭部
- // 官網(wǎng)意見反饋 https://discuz.dismall.com/thread-3849819-1-1.html
- if(isset($_SERVER['HTTP_FROM_HTTPS']) && strtolower($_SERVER['HTTP_FROM_HTTPS']) != 'off') {
- return true;
- }
- // 服務(wù)器端口號兜底判斷
- if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
- return true;
- }
- return false;
- }
復(fù)制代碼
但前提是傳入的內(nèi)容至少要攜帶以上判斷條件中的其中一項屬性,系統(tǒng)才能識別。
你可以嘗試在php層寫一個
把php層實際接收到的參數(shù)都打出來,看看你的配置實際是什么情況。