空間在國外,域名沒有 BA 號,想要加快網站的訪問速度,一個方法就是使用香港或者日本機房的服務器,國內訪問這兩個地方的空間相對於美國來説還是挺快的,要是願意花錢購買更穩定的帶寬和線路,網站訪問的速度還是有可能趕上上國內的主機速度。

另一個方法就是給網站使用 CDN 加速,國外有很多的免費 CDN 服務,可惜 CDN 加速效果並不好,甚至還有可能讓網站速度變得更慢。雖然國內近年來也出現了 360 CDN 、百度 CDN 、加速樂等免費的 CDN 服務,不過可惜的是隻有 BA 號的網站才能正常使用 CDN 。

一個折衷的辦法就是不給網站做全站 CDN 加速,而是給網站的 JS 、 CSS 、圖片、論壇附件等靜態文件進行 CDN 加速。實際測試結果顯示,這樣做 CDN 加速效果還是有的,尤其是對於一些圖片和附件比較多的網站,加速訪問的效果還是很明顯的。

之前部落已經分享過了 Wordpress 使用七牛、又拍免費 CDN 進行加速的方法,本篇文章就來分享一下 Discuz 論壇使用七牛、又拍、阿里雲 OSS 免費 CDN 加速方法。

一、申請和開通七牛 CDN

1 、進入到七牛 CDN 管理後台,新建一個空間。

Discuz論壇新建一個空間

2 、然後在鏡像存儲中設置好鏡像源。

Discuz論壇設置好鏡像源

3 、在賬號管理中可以看到密鑰 Access 和 SecretKey 。

Discuz論壇查看密鑰

二、 Discuz 論壇使用七牛 CDN 加速 JS 、 CSS 、圖片等靜態文件

1 、進入到管理中心-> 全局-> 上傳設置的基本設置,本地附件 URL 地址填寫你七牛相關空間的 http://域名+/data/attachment 。

Discuz論壇上傳基本設置

2 、然後進入到 Discuz 論壇的 「全局」-「服務器優化」 。

Discuz論壇服務器優化

3 、在 JS 文件 URL 和 CSS 文件 URL 選擇 「自定義 URL」,URL 上填寫你七牛相關空間的 http://域名+/static/js/,如果你的 JS 和 CSS 文件放在別的子目錄中,可以參照路徑進行修改。

Discuz論壇自定義URL

4 、更新 Discuz 論壇緩存,打開 Discuz 論壇,這時就能看到 JS 、 CSS 等靜態文件已經替換成了七牛的 CDN 地址了。

Discuz論壇成功替換URL

5 、原來 Discuz 論壇上的圖片等都已經變成了七牛的連接了。

Discuz論壇圖片鏈接

三、 Discuz 論壇使用七牛、又拍、阿里雲 OSS 存儲並加速附件

1 、上面我們通過建立七牛鏡像空間實現了 Discuz 論壇 JS 、 CSS 、圖片等無縫 CDN 加速,可能有的朋友想要把論壇的附件存放在七牛、又拍、阿里雲 OSS 並實現加速。

2 、先要下載:DISCUZ X3 擴展框架 DXEXTEND 文件 (適用於 3.1 和 3.2) 和 DISCUZ X2.5/3/3.1 雲存儲通用接口文件。

3 、將 DISCUZ X3 擴展框架 DXEXTEND 解壓縮並將其中的文件夾複製到 discuz 同路徑下,替換同名文件。將 DISCUZ X2.5/3/3.1 雲存儲通用接口文件解壓後,將其中的文件夾複製放在根目錄中。

Discuz論壇修改配置文件

4 、修改你的 config/config_global.php 文件,如果是想要使用七牛作為附件存儲和加速,添加以下代碼 (注意將 Access Key 、 Secret Key 、 attachurl 、 bucket 替換成你自己的):

  • $_config['extend']['storage']['curstorage'] = 'qiniu';
  • $_config['extend']['storage']['qiniu']['accesskey'] = '';
  • $_config['extend']['storage']['qiniu']['secretkey'] = '';
  • $_config['extend']['storage']['qiniu']['attachurl'] = 'http://';
  • $_config['extend']['storage']['qiniu']['bucket'] = '';

5 、如果使用阿里雲 OSS 作為附件存儲和加速,代碼如下:

  • $_config['extend']['storage']['curstorage'] = 'aliyun';
  • $_config['extend']['storage']['aliyun']['access_id'] = '';
  • $_config['extend']['storage']['aliyun']['access_key'] = '';
  • $_config['extend']['storage']['aliyun']['access_host'] = NULL;
  • $_config['extend']['storage']['aliyun']['bucket'] = 'discuzbucket';
  • $_config['extend']['storage']['aliyun']['attachurl'] = 'http://discuzbucket.oss.aliyuncs.com';

6 、如果使用又拍作為附件存儲和加速,代碼如下:

  • $_config['extend']['storage']['curstorage'] = 'upyun';
  • $_config['extend']['storage']['upyun']['bucket'] = 'dztest';
  • $_config['extend']['storage']['upyun']['username'] = 'dzuser';
  • $_config['extend']['storage']['upyun']['password'] = 'discuz';
  • $_config['extend']['storage']['upyun']['attachurl'] = 'http://dztest.b0.upaiyun.com';

7 、添加代碼完成後,接下來就是在 discuz 管理中心-> 全局-> 上傳設置-> 遠程附件 中啓用遠程附件,並將 遠程訪問 URL 設置為 http://<YOUR QINIU DOMAIN>(阿里雲和又拍同理一樣) 。

Discuz論壇遠程附件

8 、修改完成後,你在 discuz 論壇中上傳的附件就會直接上傳到七牛、又拍、阿里雲 OSS 空間上了。

Discuz論壇遠程上傳

四、 Discuz 論壇不修改代碼直
接使用又拍 FTP 存儲附件

1 、又拍雲和七牛一樣也提供了鏡像功能,在創建空間時選擇此類空間,你就可以參考上面的七牛加速 JS 、 CSS 、圖片等靜態文件的方法了。

又拍雲鏡像CDN

2 、如果你在又拍創建的空間不是鏡像 CDN,那麼你可以直接在 Discuz 論壇中使用又拍雲的 FTP 遠程上傳功能。

又拍雲的FTP

3 、這是 Discuz 論壇開啓遠程附件的設置方法。

Discuz論壇FTP設置

五、 Discuz 論壇使用 CDN 加速小結

1 、使用七牛和又拍雲的鏡像功能可以實現 Discuz 論壇的 JS 、 CSS 、圖片等靜態文件無縫遷移,避免了使用 FTP 將大量的文件重新上傳到 CDN 服務器上的麻煩了,CDN 加速效果還是很不錯的。

2 、如果你不是使用七牛和又拍雲這樣的鏡像存儲服務,而是直接將附件上傳並存放在 CDN 服務器上,那麼就要注意一個問題:附件沒有存放在自己的服務器上,一旦 CDN 服務器掛掉了附件可能也沒有了。