Discuz教程网

Discuz 简单改动减轻附件前端负载

[复制链接]
authicon dly 发表于 2012-2-21 23:33:04 | 显示全部楼层 |阅读模式
目前附件模块虽然已经经过了优化,但是在对于附件下载两比较大的网站,还是会造成服务器内存的过多使用,所以整理了一下两种改动,一种是针对系统自带远程附件的改动,另外一种是对于使用了 NFS 作为附件存储的改动。

1.对于远程附件的修改方法:
打开:source/module/forum/forum_attachment.php 找到:


  1. if(!@readfile($_G['setting']['ftp']['attachurl'].'forum/'.$file)) {
复制代码

修改为:

  1. if(!@fread($_G['setting']['ftp']['attachurl'].'forum/'.$file,100)) {
复制代码

即可减轻远程附件对服务器内存的占用。

2.对于使用了NFS附件的修改方法
首先需要对 NFS 的附件目录给一个域名,能够保证该域名能访问到 附件目录的文件,同时从NFS上做好
防盗链
的设置。

然后修改 configconfig_global.php 文件:

  1. // -------------------------  CONFIG DOWNLOAD  -------------------------- //
  2. $_config['download']['readmod'] = 2;
  3. $_config['download']['xsendfile']['type'] = '0';
  4. $_config['download']['xsendfile']['dir'] = '/down/';

复制代码

一段修改为:

  1. // ------------------------- CONFIG DOWNLOAD -------------------------- //
  2. $_config['download']['readmod'] = 2;
  3. $_config['download']['xsendfile']['type'] = '4';
  4. $_config['download']['xsendfile']['dir'] = '/down/';
  5. $_config['download']['xsendfile']['remoteurl'] = 'xxxxxxxx';  //NFS 能够访问到底附件目录,请先测试能访问附件例如 http://img.discuz.net/data/attachment/forum/
复制代码

然后修改文件:sourcemoduleforumforum_attachment.php 找到:

  1. case 3: $cmd = 'X-Sendfile'; $url = $filename; break;
复制代码

增加:

  1. case 4: $cmd = 'location'; $url = $xsendfile['remoteurl'].$attach['attachment'];break;
复制代码

这样便做到了附件流量的分流~~减轻了 web 服务器的负载。



上一篇:Discuz X2论坛 flash 上传略解
下一篇:DX1.5修改密码错误次数过多,请 15 分钟后重新登录的时间限制
authicon nimeilai 发表于 2012-3-31 18:12:55 | 显示全部楼层
不太懂怎么用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 05:28

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表