男的舔女的下面视频在线播放-少妇愉情理仑片高潮日本-久久久久久国产一区二区三区-麻豆精品一区二区综合-国产精品超碰在线观看-网红极品女神精品视频在线-国产亚洲综合777-高清性视频一区二区播放-中文字幕第一页亚洲天堂

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

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

1

主題

4

回帖

0

粉絲

初學乍練

貢獻
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;
復制代碼

CF的配置




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

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

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

最佳答案

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

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

haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認是會對進來的請求的屬性進行猜測的:
  1.         private function _is_https() {
  2.                 // PHP 標準服務器變量
  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.                 // 官網意見反饋 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.                 // 服務器端口號兜底判斷
  21.                 if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
  22.                         return true;
  23.                 }
  24.                 return false;
  25.         }
復制代碼

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

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

使用道具 舉報

12

主題

1634

回帖

4

粉絲

Giter

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

使用道具 舉報

12

主題

1634

回帖

4

粉絲

Giter

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

使用道具 舉報

1

主題

4

回帖

0

粉絲

初學乍練

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

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

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

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

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

使用道具 舉報

12

主題

1634

回帖

4

粉絲

Giter

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

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

haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經不再具備https特征,以至于系統(tǒng)無法正常識別。
Discuz默認是會對進來的請求的屬性進行猜測的:
  1.         private function _is_https() {
  2.                 // PHP 標準服務器變量
  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.                 // 官網意見反饋 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.                 // 服務器端口號兜底判斷
  21.                 if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
  22.                         return true;
  23.                 }
  24.                 return false;
  25.         }
復制代碼

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

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

使用道具 舉報

1

主題

4

回帖

0

粉絲

初學乍練

貢獻
0 點
金幣
5 個
6#
 樓主| 發(fā)表于 2023-6-16 20:27:49 |上海| 只看Ta
專家 發(fā)表于 2023-6-16 18:18
haproxy層做了ssl卸載么?
這種情況很有可能是請求到達php層的時候已經不再具備https特征,以至于系統(tǒng)無 ...

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

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

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

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

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

使用道具 舉報

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

本版積分規(guī)則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2026-4-18 06:40 , Processed in 0.047339 second(s), 15 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

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