空间在国外,域名没有 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 服务器挂掉了附件可能也没有了。