星月设计网 首页 技术分享 查看内容

让Discuz! X使用Nginx 的sendfile功能

2018-12-27 21:49| 查看: 1201| 点击图片预览大图

摘要: 传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站会消耗更多的服务器资源。sendfile是现代操作系统支持的一种高 ...
传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站会消耗更多的服务器资源。sendfile是现代操作系统支持的一种高性能网络IO方式,操作系统内核的sendfile调用可以将文件内容直接推送到网卡的buffer当中,从而避免了Web服务器读写文件的开销,实现了“零拷贝”模式。

  Nginx 对 sendfile 有着良好的支持,Discuz! X2 也支持把附件通过 sendfile 发给客户,对于资源下载类的论坛,能明显减少PHP读取附件的资源占用。

1、先在Nginx的配置文件里面检查是否有 sendfile off 配置,如果有,那么把sendfile 改为on。

2、打开论坛的配置文件config/config_global.php ,

 找到以下代码:

$_config['download']['xsendfile']['type'] =0

 把以上代码中的0改为1。

 然后找到下面这句代码:

$_config['download']['xsendfile']['dir'] = '/down/';

根据论坛所在目录进行相应修改:

 如果论坛放在根目录,那么把/down/改为/data/attachment/forum/

 如果论坛放在bbs目录,那么把/down/改为/bbs/data/attachment/forum/

 以此类推。

相关阅读

搜索
返回顶部