Discuz:服务器优化详解
Discuz! 6.0|Discuz! 6.0安装|Discuz! 6.0使用|Discuz! 6.0风格模板|Discuz! 6.0插件|Discuz! 6.0升级|Discuz! 6.0开发|Discuz! 6.0 FAQ |
我们在“论坛的后台->基本设置->服务器优化”这个选项里面有如下一些选项,大家或许对后台的设置不是非常的了解,那么下面我对该配置做些详细的说明,希望对你有所帮助。
1、页面 Gzip 压缩
将页面内容以 gzip 压缩后传输,可以加快传输速度,需 PHP 4.0.4 以上且支持 Zlib 模块才能使用。如图 1 所示:
GZIP 最早由 Jean-loup Gailly 和 Mark Adler 创建,用于 UNIX 系统的文件压缩。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 GZIP 格式的。现今已经成为 Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的 GZIP 编码是一种用来改进 WEB 应用程序性能的技术。大流量的 WEB 站点常常使用 GZIP 压缩技术来让用户感受更快的速度。所以这个在基本支持的条件的情况下最好都打开。在 apache 下也有实现同样功能的一个 gzip 模块。
2、点击数延迟更新
延迟更新主题或者附件的浏览量,可明显降低访问量很大的论坛的服务器负担,建议开启本功能。如图 2 所示:
这个针对Discuz!部分频繁写数据库的个地方(主题浏览量和附件下载量)做了优化,即在论坛的访问量很大的情况下,把这两个数据记录到文件上面,过一定时间定时自动一次写到数据库里面(具体细节可以看viewthread.php 的 viewthread_updateviews()函数 和 include/misc.func.php 的 updateviews()函数),从而减少频繁读写数据库的时间,和数据库的压力,把负载降低。
3、禁止浏览器缓冲
禁止浏览器对论坛页面进行缓冲,可用于解决极个别浏览器内容刷新不正常的问题。注意:本功能会加重服务器负担。如图 3 所示:
这个选项建议关闭,这个是采用给浏览器发不许缓存的头信息来控制。但是这个可能大大降低浏览器的访问速度,而且给服务器带来更大的负担。
4、启用 URL 传递 sid
通过 URL 传递 sid 可帮助用户在禁用 Cookies 的情况下仍可登录论坛,但也可能造成内部网用户交换包含 sid 的 URL 时可能出现的用户错乱。如图 4 所示:
这个选项建议关闭,现在的用户基本上没有禁止使用 cookie 的情况的,所以关闭这个选项可以给服务器节省部分资源。
5、最大在线人数
请设置合理的数值,范围 10~65535,建议设置为平均在线人数的 10 倍左右。如图 5 所示:
这个设置通过设置 sessions表的最大记录,来控制最大的在线人数,通过这个选项可以适当的控制服务器的资源消耗,所以可以根据你的在线人数来调节这个设置。具体细节看 admin/settings.inc.php 里面 涉及 $maxonlines 变量的地方。
6、在线保持时间(分钟)
请根据访问情况设置合理的数值,访问量大的站点应当调小该数值,设置范围 5 - 60,过大或者过小的设置都有可能会增大服务器资源开销。如图 6 所示:
这个选项是一个比较重要的设置,因为设置过大,你的资源会消耗过多的,特别是站点访问量比较大的站点。这个实现是把所有的访问记录在 seesions,对于在改设置时间内没有活动的用户,就会被踢出这个记录。对于一般的站点,建议设置15分钟。具体的细节可以参考 include/global.func.php 的 updatesession() 函数。
7、系统负载控制
本选项用于部分 Unix/Linux 主机下,系统高于此值时会禁止新用户访问直至负载下降,通常情况可设置为 5~10,0 为不限制。本功能会轻微加重服务器负担。如图 7 所示:
这个通过在我们每一个页面的公共调用页面 include/comon.inc.php的
if(!empty($loadctrl) && substr(PHP_OS, 0, 3) != 'WIN') { if($fp = @fopen('/proc/loadavg', 'r')) { list($loadaverage) = explode(' ', fread($fp, 6)); fclose($fp); if($loadaverage > $loadctrl) { header("HTTP/1.0 503 Service Unavailable"); include DISCUZ_ROOT.'./include/serverbusy.htm'; exit(); } } }
来控制访问量过高引起的高负载,这样来减少服务器负载。这个对于本身比较高负载的可以设置为 0,需要根据实际的运行情况设置。这个对与非 Unix/Linux 主机 可以不用设置为,虚拟主机可以设置为 0,独立 Unix/Linux 主机才更需要设置。
8、发帖灌水预防(秒)
两次发帖间隔小于此时间,或两次发送短消息间隔小于此时间的二倍将被禁止,0 为不限制。如图 8 所示:
这个为了防止多次刷新来发帖,而设置的,最好这个设置为15秒。
这个对于版主的可以在管理组设置,发帖不受限制:设置发帖是否不受灌水预防和最大字数等来跳过这个限制。
9、搜索设置
搜索时间限制(秒):两次搜索间隔小于此时间将被禁止,0 为不限制 。如图 9 所示:
搜索是论坛最消耗资源的一个应用,建议对非管理组都不开放全文搜索(用户设置=》用户组设置=》具体详情=》允许使用搜索: 来限制部分用户组的搜索权限。所以这个值必须有所限制,最好设置为30秒。
10、60 秒最大搜索次数
论坛系统每 60 秒系统响应的最大搜索次数,0 为不限制。注意:如果服务器负担较重,建议设置为 5,或在 5~20 范围内取值,以避免过于频繁的搜索造成数据表被锁。如图 10 所示:
这个机制可以很大程度上减少服务器的搜索负载,强烈推荐开启此设置,推荐设置值为 10。
11、最大搜索结果
如图 11 所示:
每次搜索获取的最大结果数,建议设置为默认值 500,或在不超过 1500 范围内取值。这个对于一般的搜索的准确度的补充,因为搜索未必一下子就达到用户的搜索需要。那么可以设置为 100-200 已经足够了。这个设置也是可以轻微减少服务器的负担。