腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

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

0
回复
414
查看
[复制链接]

690

主题

704

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
31813
     紫钻仅向指定用户开放  
发表于 19-3-27 22:28:18 | 显示全部楼层 |阅读模式
                目前附件模块虽然已经经过了优化,但是在对于附件下载两比较大的网站,还是会造成服务器内存的过多使用,所以整理了一下两种改动,一种是针对系统自带远程附件的改动,另外一种是对于使用了 NFS 作为附件存储的改动。" L  u) J7 Y. e1 t. w* e

9 t* j$ _; Z: P+ f# ]/ U& n7 v1.对于远程附件的修改方法:
( x* M/ I2 D6 p* r. t* N打开:sourcemoduleforumforum_attachment.php 找到:
- c7 S/ A( |% W( N5 r+ v; R3 g
  1. if(!@readfile($_G['setting']['ftp']['attachurl'].'forum/'.$file)) {
复制代码
3 X; t1 H2 G0 l3 v" U( U
修改为:7 K! t9 L( k0 L$ @
  1. if(!@fread($_G['setting']['ftp']['attachurl'].'forum/'.$file,100)) {
复制代码

( {1 ^  n2 f# m% @! h即可减轻远程附件对服务器内存的占用。
, w1 G& O) h+ c( g0 A1 U) f% g7 ?% @) n4 c& ]
2.对于使用了NFS附件的修改方法; ]% L- i- A. U& i* ^" U
首先需要对 NFS 的附件目录给一个域名,能够保证该域名能访问到 附件目录的文件,同时从NFS上做好6 e" V( r& R2 ~: ]7 M  v% w4 P9 k
防盗链
" z  F3 }8 Z) @/ ?的设置。
, |& ]) f  l7 A) ?( t+ [. B
6 @/ n5 h: g5 s8 z! z然后修改 configconfig_global.php 文件:
2 y6 j% C2 L/ J/ ~/ S
  1. // -------------------------  CONFIG DOWNLOAD  -------------------------- //
    ' v$ D+ X+ d( u2 [6 j
  2. $_config['download']['readmod'] = 2;
    ( U" n. h4 [4 s% m) q( C0 }$ {
  3. $_config['download']['xsendfile']['type'] = '0';
    9 s& `# Z) m8 w- Q1 C( V
  4. $_config['download']['xsendfile']['dir'] = '/down/';
复制代码

9 g% z4 ^7 R/ }' G2 }一段修改为:+ `# Q' ]) e- T$ `; L  a+ u
  1. // ------------------------- CONFIG DOWNLOAD -------------------------- //
    ) g. M6 G. q! ~% ?- Q* r# l" ]
  2. $_config['download']['readmod'] = 2;$ U0 |) S4 a/ ~7 R
  3. $_config['download']['xsendfile']['type'] = '4';
      d" X$ W" v' F8 e1 D- U( N
  4. $_config['download']['xsendfile']['dir'] = '/down/';* E% ^! [8 q0 e! C3 b
  5. $_config['download']['xsendfile']['remoteurl'] = 'xxxxxxxx';  //NFS 能够访问到底附件目录,请先测试能访问附件例如 http://img.discuz.net/data/attachment/forum/
复制代码
  L9 ^* s; y+ A* q
然后修改文件:sourcemoduleforumforum_attachment.php 找到:! f3 A4 K6 Y; w1 |. e7 W2 w
  1. case 3: $cmd = 'X-Sendfile'; $url = $filename; break;
复制代码

* {# y2 V% w! I- {" M# [4 D: x( n增加:# T- Z, |, C6 |/ M0 O  q
  1. case 4: $cmd = 'location'; $url = $xsendfile['remoteurl'].$attach['attachment'];break;
复制代码

4 t) F3 L" q8 V) M8 I8 N0 j这样便做到了附件流量的分流~~减轻了 web 服务器的负载。
0 H  r3 @/ r: n) }" v
" ~7 D- L1 W- }8 Y0 G- c, B            

qiuqiufa.com

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除