久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發(fā)帖
查看: 2558|回復(fù): 5

[已解決] X3.5 新安裝套了CloudFlare, 無法登錄

1

主題

4

回帖

10

積分

初學(xué)乍練

貢獻
0 點
金幣
5 個
樓主
發(fā)表于 2023-6-16 15:39:39 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
我按照文檔, 安裝好Discuz X3.5, 用haproxy+ssl證書使用沒有問題, 可以登錄, 驗證碼也可以正常使用。 問題出在套了CloudFlare后, 登錄的url schema變成了http



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

CF的配置




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

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

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

最佳答案

og01 發(fā)表于 2023-6-16 16:43
專家您好, 我正是看了很多您的帖子來解決各種discuz的問題, 首先非常感謝。

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

haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經(jīng)不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認是會對進來的請求的屬性進行猜測的:
  1.         private function _is_https() {
  2.                 // PHP 標準服務(wù)器變量
  3.                 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
  4.                         return true;
  5.                 }
  6.                 // X-Forwarded-Proto 事實標準頭部, 用于反代透傳 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ù)都打出來,看看你的配置實際是什么情況。
回復(fù)

使用道具 舉報

12

主題

1655

回帖

2791

積分

Giter

貢獻
147 點
金幣
359 個
沙發(fā)
發(fā)表于 2023-6-16 16:15:45 | 只看Ta
你既然是新安裝的,那你直接在已經(jīng)套好cloudflare的情況下重新安裝一下吧。
畢竟手動改步驟不少,還挺麻煩的,你也沒啥資料需要保留。
安裝完以后記得完成這步 http://www.9999xn.com/thread-15034-1-1.html
回復(fù)

使用道具 舉報

12

主題

1655

回帖

2791

積分

Giter

貢獻
147 點
金幣
359 個
板凳
發(fā)表于 2023-6-16 16:18:03 | 只看Ta
如果你一定要手動改,首先需要解決進入后臺的問題,在config里解除限制以后進入后臺更新緩存,http基本上就沒有了。
但此時你的頭像大概率還是加載不出來,你還需要把discuz里的uc api和uc里的api里面的http都換成https,才算解決問題,然后再更新緩存。
回復(fù)

使用道具 舉報

1

主題

4

回帖

10

積分

初學(xué)乍練

貢獻
0 點
金幣
5 個
地板
 樓主| 發(fā)表于 2023-6-16 16:43:29 | 只看Ta
專家 發(fā)表于 2023-6-16 16:15
你既然是新安裝的,那你直接在已經(jīng)套好cloudflare的情況下重新安裝一下吧。
畢竟手動改步驟不少,還挺麻煩 ...

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

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

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

一臺走CF反代, 就出現(xiàn)了 http, 所以我懷疑是CF回源請求是不是有問題, 但是CF里ssl設(shè)置的是Full(Strict), 所以不太會出現(xiàn)請求http的問題
回復(fù)

使用道具 舉報

12

主題

1655

回帖

2791

積分

Giter

貢獻
147 點
金幣
359 個
5#
發(fā)表于 2023-6-16 18:18:57 | 只看Ta
og01 發(fā)表于 2023-6-16 16:43
專家您好, 我正是看了很多您的帖子來解決各種discuz的問題, 首先非常感謝。

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

haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經(jīng)不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認是會對進來的請求的屬性進行猜測的:
  1.         private function _is_https() {
  2.                 // PHP 標準服務(wù)器變量
  3.                 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
  4.                         return true;
  5.                 }
  6.                 // X-Forwarded-Proto 事實標準頭部, 用于反代透傳 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ù)都打出來,看看你的配置實際是什么情況。
回復(fù) 1

使用道具 舉報

1

主題

4

回帖

10

積分

初學(xué)乍練

貢獻
0 點
金幣
5 個
6#
 樓主| 發(fā)表于 2023-6-16 20:27:49 | 只看Ta
專家 發(fā)表于 2023-6-16 18:18
haproxy層做了ssl卸載么?
這種情況很有可能是請求到達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的那行配置去掉了, 就正常了, 非常感謝 @專家
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-7-3 23:03 , Processed in 0.062069 second(s), 14 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表