1. 程式人生 > >discuz優化10個小技巧

discuz優化10個小技巧

  Discuz論壇是國內使用最多的論壇系統,現在最新版為X 3.4,X3.4 從 2018 年 1 月 1 日起只在官方 Git 釋出,地址:https://gitee.com/ComsenzDiscuz/DiscuzX,說明已經開源了。discuz有那麼多的粉絲,跟它完善的功能有很大關係,開箱即用,很多優化可以直接在後臺設定,應對高併發/大資料量,那麼discuz怎麼優化呢?可以從以下幾點來進行,跟ytkah一起來看看吧。

1、效能優化

  首先想到的是內建的效能優化,在後臺的 全域性 - 效能優化

  discuz伺服器優化:

  是否優化更新主題瀏覽量:是

  檢視數開啟防重新整理:是。如果選擇“否”,主題、空間、日誌每訪問一次,瀏覽量增1,會增大伺服器壓力,建議選擇“是”

  附件下載量延遲更新:是。延遲更新附件的瀏覽量,可明顯降低訪問量很大的站點的伺服器負擔,建議開啟本功能

   最大線上人數:範圍 10~65535,建議設定為平均線上人數的 10 倍左右

  線上保持時間(分鐘):根據訪問情況設定合理的數值,訪問量大的站點應當調小該數值,設定範圍 5 - 60,過大或者過小的設定都有可能會增大伺服器資源開銷

  開啟圖片延時載入:是。當開啟後,頁面中的圖片在瀏覽器的當前視窗時再載入,可明顯降低訪問量很大的站點的伺服器負擔,建議開啟本功能

  參與模組聚合資料條數:此值影響模組聚合時MYSQL檢索資料的條數,設定太大將嚴重影響MYSQL的效能,設定太小將會影響模組聚合結果資料的理想程度。0為關閉此功能

  是否關閉session機制:關閉session機制以後,可明顯降低站點的伺服器負擔,建議線上使用者數超過2萬時開啟本功能(注意:遊客數和使用者的線上時長將不再進行統計,論壇首頁和版塊列表頁面的線上使用者列表功能將不可用)

discuz伺服器優化

  discuz記憶體優化

  啟用記憶體優化功能將會大幅度提升程式效能和伺服器的負載能力,記憶體優化功能需要伺服器系統以及PHP擴充套件模組支援

  目前支援的記憶體優化介面有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis、YAC、APCu,優化系統將會依據當前伺服器環境依次選用介面

  記憶體介面的主要設定位於/config/config_global.php 當中,您可以通過編輯 config_global.php 進行高階設定,詳細參考 discuz config_global.php檔案設定說明

discuz記憶體優化

  discuz論壇頁面快取設定優化

  快取論壇首頁有效期:設定論壇首頁快取更新的時間,單位為秒,0 為關閉(此處關閉以後,快取係數將不再起作用),建議設定為 900。此功能只針對遊客

  快取帖子有效期:設定帖子頁面快取更新的時間,單位為秒,0 為關閉。請根據實際情況進行調整,建議設定為 900。另外,請通過編輯論壇來指定帖子頁面快取係數

  快取係數:頁面快取功能可以將會員經常訪問的主題臨時快取起來,緩解大型論壇伺服器壓力。快取閥值範圍 0 - 100,建議設定為 40 ,0 為關閉。在磁碟空間允許的情況下,適當調高快取係數,可以提高快取效果

discuz論壇頁面快取設定優化

2、discuz防灌水設定

  discuz有一套完善的防灌水設定,我們可以設定邀請註冊、郵箱驗證、只能QQ/微信登陸、發帖時間間隔、詞語過濾等

  詞語過濾是非常關鍵的,一不小心論壇就會被關閉,甚至更嚴重,已經有很多先例了,所以設定一套完整的敏感詞過濾機制非常重要

3、dicuz手機端優化設定

  現在網際網路的流量都集中在移動端了,一個好的手機模板非常重要!discuz手機模板可以採用移動網頁加速器(MIP)。①MIP 提供與 MIP Runtime 相容封裝好的元件來實現,不允許自定義 JavaScript 。②使用inline的css,CSS 內聯可以減少客戶端的開銷。③MIP快取能夠幫站長加速網頁,MIP-Cache 將會把 MIP 網頁快取到百度 CDN 中。更多MIP詳情請參考https://www.mipengine.org/doc/03-principle-of-mip.html

4、https設定

  HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文字傳輸安全協議),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。 它是一個URI scheme(抽象識別符號體系),句法類同http:體系。用於安全的HTTP資料傳輸。

  HTTPS和HTTP的區別主要為以下四點:

  ①、https協議需要到ca申請證書,一般免費證書很少,需要交費。

  ②、http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。

  ③、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

  ④、http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

5、discuz SEO優化

  偽靜態設定:URL 靜態化可以提高搜尋引擎抓取,開啟本功能需要對 Web 伺服器增加相應的 Rewrite 支援

設定完以後要在.htaccess檔案寫入偽靜態程式碼

6.discuz CDN優化

  CDN的全稱是Content Delivery Network,即內容分發網路。依靠部署在各地的邊緣伺服器,通過中心平臺的負載均衡、內容分發、排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。特別是js、css、圖片,放在cdn上載入速度更快。

7、discuz開啟Gzip

  假設我們訪問的一個頁面有100kb,如果已經開啟Gzip了,伺服器會把這個頁面壓縮成zip檔案,可能只有10kb或更小,就會節省頻寬和下載時間。當瀏覽器可以下載zip檔案,解壓,並且渲染給使用者。下載很快,頁面載入也很快。

8、discuz資料庫優化。

資料表優化可以去除資料檔案中的碎片,使記錄排列緊密,提高讀寫速度。

後臺 - 站長 - 資料庫 - 優化

後臺 - 站長 - 帖子分表/使用者表優化/主題分表。分表功能可以將帖子分在不同的資料表中,適合帖子數很多並且執行效率受到影響的站點使用

9、discuz外掛篩選

  在沒有必要的情況儘量少裝外掛,有些外掛呼叫很多sql反而降低效率

10、discuz模板優化

  精簡壓縮css/js檔案,儘量減少js的使用,或者使用封裝好的js

  以上是discuz優化常見的一些方法,最核心的是要減少sql數,所以在開發的過程中硬磕sql語句,不管是模板、外掛、功能實現,開啟debug模式,想方設法去降低。相信你會把discuz優化得很好。如果您有更多優化的方法歡迎留言探討!