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

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

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

1

主題

4

回帖

10

積分

初學(xué)乍練

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



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

CF的配置




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

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

請(qǐng)各位高手幫忙診斷一下, 問(wèn)題出在什么地方?
1 貢獻(xiàn)

最佳答案

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

對(duì)于我出現(xiàn)的這個(gè)問(wèn)題,  ...

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è)的:
  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 事實(shí)標(biāo)準(zhǔn)頭部, 用于反代透?jìng)?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 意見(jiàn)反饋 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)意見(jiàn)反饋 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ù)器端口號(hào)兜底判斷
  21.                 if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
  22.                         return true;
  23.                 }
  24.                 return false;
  25.         }
復(fù)制代碼

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

你可以嘗試在php層寫(xiě)一個(gè)
  1. var_dump($_SERVER);
復(fù)制代碼
把php層實(shí)際接收到的參數(shù)都打出來(lái),看看你的配置實(shí)際是什么情況。
回復(fù)

使用道具 舉報(bào)

12

主題

1655

回帖

2814

積分

Giter

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

使用道具 舉報(bào)

12

主題

1655

回帖

2814

積分

Giter

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

使用道具 舉報(bào)

1

主題

4

回帖

10

積分

初學(xué)乍練

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

專(zhuān)家您好, 我正是看了很多您的帖子來(lái)解決各種discuz的問(wèn)題, 首先非常感謝。

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

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

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

使用道具 舉報(bào)

12

主題

1655

回帖

2814

積分

Giter

貢獻(xiàn)
151 點(diǎn)
金幣
362 個(gè)
5#
發(fā)表于 2023-6-16 18:18:57 | 只看Ta
og01 發(fā)表于 2023-6-16 16:43
專(zhuān)家您好, 我正是看了很多您的帖子來(lái)解決各種discuz的問(wèn)題, 首先非常感謝。

對(duì)于我出現(xiàn)的這個(gè)問(wèn)題,  ...

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è)的:
  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 事實(shí)標(biāo)準(zhǔn)頭部, 用于反代透?jìng)?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 意見(jiàn)反饋 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)意見(jiàn)反饋 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ù)器端口號(hào)兜底判斷
  21.                 if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
  22.                         return true;
  23.                 }
  24.                 return false;
  25.         }
復(fù)制代碼

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

你可以嘗試在php層寫(xiě)一個(gè)
  1. var_dump($_SERVER);
復(fù)制代碼
把php層實(shí)際接收到的參數(shù)都打出來(lái),看看你的配置實(shí)際是什么情況。
回復(fù) 1

使用道具 舉報(bào)

1

主題

4

回帖

10

積分

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
6#
 樓主| 發(fā)表于 2023-6-16 20:27:49 | 只看Ta
專(zhuān)家 發(fā)表于 2023-6-16 18:18
haproxy層做了ssl卸載么?
這種情況很有可能是請(qǐng)求到達(dá)php層的時(shí)候已經(jīng)不再具備https特征,以至于系統(tǒng)無(wú) ...

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

由于之前沒(méi)有套CDN的情況下在HAProxy上面加了一個(gè)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個(gè)https, 估計(jì)php在這里解析出錯(cuò)了

我把haproxy的那行配置去掉了, 就正常了, 非常感謝 @專(zhuān)家
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

GMT+8, 2025-9-19 09:02 , Processed in 0.084512 second(s), 34 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

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