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