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記憶體優化
啟用記憶體優化功能將會大幅度提升程式效能和伺服器的負載能力,記憶體優化功能需要伺服器系統以及PHP擴充套件模組支援
目前支援的記憶體優化介面有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis、YAC、APCu,優化系統將會依據當前伺服器環境依次選用介面
記憶體介面的主要設定位於/config/config_global.php 當中,您可以通過編輯 config_global.php 進行高階設定,詳細參考 discuz config_global.php檔案設定說明
discuz論壇頁面快取設定優化
快取論壇首頁有效期:設定論壇首頁快取更新的時間,單位為秒,0 為關閉(此處關閉以後,快取係數將不再起作用),建議設定為 900。此功能只針對遊客
快取帖子有效期:設定帖子頁面快取更新的時間,單位為秒,0 為關閉。請根據實際情況進行調整,建議設定為 900。另外,請通過編輯論壇來指定帖子頁面快取係數
快取係數:頁面快取功能可以將會員經常訪問的主題臨時快取起來,緩解大型論壇伺服器壓力。快取閥值範圍 0 - 100,建議設定為 40 ,0 為關閉。在磁碟空間允許的情況下,適當調高快取係數,可以提高快取效果
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優化得很好。如果您有更多優化的方法歡迎留言探討!