97久久国产亚洲精品超碰热,成人又色又爽的免费网站,色偷偷女人的天堂a,男女高潮喷水在线观看,国内精品一线二线三线区别在哪里

Discuz! 官方交流社區(qū)

標(biāo)題: X3.5 新安裝套了CloudFlare, 無法登錄 [打印本頁]

作者: og01    時間: 2023-6-16 15:39
標(biāo)題: X3.5 新安裝套了CloudFlare, 無法登錄
我按照文檔, 安裝好Discuz X3.5, 用haproxy+ssl證書使用沒有問題, 可以登錄, 驗證碼也可以正常使用。 問題出在套了CloudFlare后, 登錄的url schema變成了http

(, 下載次數(shù): 30)

我按照專家的一些帖子修改了一些配置
  1. $_config['ipgetter']['setting'] = 'header';
  2. $_config['ipgetter']['header']['header'] = 'HTTP_CF_CONNECTING_IP';
  3. $_config['output']['upgradeinsecure'] = 1;
復(fù)制代碼

CF的配置

(, 下載次數(shù): 32)


我的站點目前的結(jié)構(gòu)是
Internet => CloudFlare CDN (free) => Haproxy => Apache/PHP runtime

Discuz X3.5是剛剛從官網(wǎng)上下載的, 沒有安裝任何主題和插件。 部署方式為論壇+ucenter

請各位高手幫忙診斷一下, 問題出在什么地方?

作者: 專家    時間: 2023-6-16 16:15
你既然是新安裝的,那你直接在已經(jīng)套好cloudflare的情況下重新安裝一下吧。
畢竟手動改步驟不少,還挺麻煩的,你也沒啥資料需要保留。
安裝完以后記得完成這步 http://r615.cn/thread-15034-1-1.html
作者: 專家    時間: 2023-6-16 16:18
如果你一定要手動改,首先需要解決進(jìn)入后臺的問題,在config里解除限制以后進(jìn)入后臺更新緩存,http基本上就沒有了。
但此時你的頭像大概率還是加載不出來,你還需要把discuz里的uc api和uc里的api里面的http都換成https,才算解決問題,然后再更新緩存。
作者: og01    時間: 2023-6-16 16:43
專家 發(fā)表于 2023-6-16 16:15
你既然是新安裝的,那你直接在已經(jīng)套好cloudflare的情況下重新安裝一下吧。
畢竟手動改步驟不少,還挺麻煩 ...

專家您好, 我正是看了很多您的帖子來解決各種discuz的問題, 首先非常感謝。

對于我出現(xiàn)的這個問題, 比較奇怪, 所以我來論壇求助。 我搜索引擎找不到其他的線索。

我嘗試過套好CF安裝論壇, 同樣不行, 出現(xiàn)一樣的問題。 我現(xiàn)在是兩臺機(jī)器測試, 一臺改了hosts直接指到內(nèi)網(wǎng)的haproxy https反代discuz, 這樣訪問時沒問題的。 全程https

一臺走CF反代, 就出現(xiàn)了 http, 所以我懷疑是CF回源請求是不是有問題, 但是CF里ssl設(shè)置的是Full(Strict), 所以不太會出現(xiàn)請求http的問題
作者: 專家    時間: 2023-6-16 18:18
og01 發(fā)表于 2023-6-16 16:43
專家您好, 我正是看了很多您的帖子來解決各種discuz的問題, 首先非常感謝。

對于我出現(xiàn)的這個問題,  ...

haproxy層做了ssl卸載么?
這種情況很有可能是請求到達(dá)php層的時候已經(jīng)不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認(rèn)是會對進(jìn)來的請求的屬性進(jìn)行猜測的:
  1.         private function _is_https() {
  2.                 // PHP 標(biāo)準(zhǔn)服務(wù)器變量
  3.                 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
  4.                         return true;
  5.                 }
  6.                 // X-Forwarded-Proto 事實標(biāo)準(zhǔn)頭部, 用于反代透傳 HTTPS 狀態(tài)
  7.                 if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') {
  8.                         return true;
  9.                 }
  10.                 // 阿里云全站加速私有 HTTPS 狀態(tài)頭部
  11.                 // Git 意見反饋 https://gitee.com/Discuz/DiscuzX/issues/I3W5GP
  12.                 if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && strtolower($_SERVER['HTTP_X_CLIENT_SCHEME']) == 'https') {
  13.                         return true;
  14.                 }
  15.                 // 西部數(shù)碼建站助手私有 HTTPS 狀態(tài)頭部
  16.                 // 官網(wǎng)意見反饋 https://discuz.dismall.com/thread-3849819-1-1.html
  17.                 if(isset($_SERVER['HTTP_FROM_HTTPS']) && strtolower($_SERVER['HTTP_FROM_HTTPS']) != 'off') {
  18.                         return true;
  19.                 }
  20.                 // 服務(wù)器端口號兜底判斷
  21.                 if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
  22.                         return true;
  23.                 }
  24.                 return false;
  25.         }
復(fù)制代碼

但前提是傳入的內(nèi)容至少要攜帶以上判斷條件中的其中一項屬性,系統(tǒng)才能識別。

你可以嘗試在php層寫一個
  1. var_dump($_SERVER);
復(fù)制代碼
把php層實際接收到的參數(shù)都打出來,看看你的配置實際是什么情況。
作者: og01    時間: 2023-6-16 20:27
專家 發(fā)表于 2023-6-16 18:18
haproxy層做了ssl卸載么?
這種情況很有可能是請求到達(dá)php層的時候已經(jīng)不再具備https特征,以至于系統(tǒng)無 ...

多謝專家, 我檢查了haproxy的設(shè)置, 發(fā)現(xiàn)了問題

由于之前沒有套CDN的情況下在HAProxy上面加了一個http頭
  1. http-request add-header X-Forwarded-Proto https if { ssl_fc }
復(fù)制代碼

導(dǎo)致php這邊收到的是這樣的
  1.   ["HTTP_X_FORWARDED_PROTO"]=>
  2.   string(19) "https, https, https"
復(fù)制代碼

有3個https, 估計php在這里解析出錯了

我把haproxy的那行配置去掉了, 就正常了, 非常感謝 @專家





歡迎光臨 Discuz! 官方交流社區(qū) (http://r615.cn/) Powered by Discuz! X5.0