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 所示:

Dz187.gif

GZIP 最早由 Jean-loup Gailly 和 Mark Adler 创建,用于 UNIX 系统的文件压缩。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 GZIP 格式的。现今已经成为 Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的 GZIP 编码是一种用来改进 WEB 应用程序性能的技术。大流量的 WEB 站点常常使用 GZIP 压缩技术来让用户感受更快的速度。所以这个在基本支持的条件的情况下最好都打开。在 apache 下也有实现同样功能的一个 gzip 模块。

2、点击数延迟更新

延迟更新主题或者附件的浏览量,可明显降低访问量很大的论坛的服务器负担,建议开启本功能。如图 2 所示:

Dz188.gif

这个针对Discuz!部分频繁写数据库的个地方(主题浏览量和附件下载量)做了优化,即在论坛的访问量很大的情况下,把这两个数据记录到文件上面,过一定时间定时自动一次写到数据库里面(具体细节可以看viewthread.php 的 viewthread_updateviews()函数 和 include/misc.func.php 的 updateviews()函数),从而减少频繁读写数据库的时间,和数据库的压力,把负载降低。

3、禁止浏览器缓冲

禁止浏览器对论坛页面进行缓冲,可用于解决极个别浏览器内容刷新不正常的问题。注意:本功能会加重服务器负担。如图 3 所示:

Dz189.gif

这个选项建议关闭,这个是采用给浏览器发不许缓存的头信息来控制。但是这个可能大大降低浏览器的访问速度,而且给服务器带来更大的负担。

4、启用 URL 传递 sid

通过 URL 传递 sid 可帮助用户在禁用 Cookies 的情况下仍可登录论坛,但也可能造成内部网用户交换包含 sid 的 URL 时可能出现的用户错乱。如图 4 所示:

Dz190.gif

这个选项建议关闭,现在的用户基本上没有禁止使用 cookie 的情况的,所以关闭这个选项可以给服务器节省部分资源。

5、最大在线人数

请设置合理的数值,范围 10~65535,建议设置为平均在线人数的 10 倍左右。如图 5 所示:

Dz191.gif

这个设置通过设置 sessions表的最大记录,来控制最大的在线人数,通过这个选项可以适当的控制服务器的资源消耗,所以可以根据你的在线人数来调节这个设置。具体细节看 admin/settings.inc.php 里面 涉及 $maxonlines 变量的地方。

6、在线保持时间(分钟)

请根据访问情况设置合理的数值,访问量大的站点应当调小该数值,设置范围 5 - 60,过大或者过小的设置都有可能会增大服务器资源开销。如图 6 所示:

Dz192.gif

这个选项是一个比较重要的设置,因为设置过大,你的资源会消耗过多的,特别是站点访问量比较大的站点。这个实现是把所有的访问记录在 seesions,对于在改设置时间内没有活动的用户,就会被踢出这个记录。对于一般的站点,建议设置15分钟。具体的细节可以参考 include/global.func.php 的 updatesession() 函数。

7、系统负载控制

本选项用于部分 Unix/Linux 主机下,系统高于此值时会禁止新用户访问直至负载下降,通常情况可设置为 5~10,0 为不限制。本功能会轻微加重服务器负担。如图 7 所示:

Dz193.gif

这个通过在我们每一个页面的公共调用页面 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 所示:

Dz194.gif

这个为了防止多次刷新来发帖,而设置的,最好这个设置为15秒。

这个对于版主的可以在管理组设置,发帖不受限制:设置发帖是否不受灌水预防和最大字数等来跳过这个限制。

9、搜索设置

搜索时间限制(秒):两次搜索间隔小于此时间将被禁止,0 为不限制 。如图 9 所示:

Dz195.gif

搜索是论坛最消耗资源的一个应用,建议对非管理组都不开放全文搜索(用户设置=》用户组设置=》具体详情=》允许使用搜索: 来限制部分用户组的搜索权限。所以这个值必须有所限制,最好设置为30秒。

10、60 秒最大搜索次数

论坛系统每 60 秒系统响应的最大搜索次数,0 为不限制。注意:如果服务器负担较重,建议设置为 5,或在 5~20 范围内取值,以避免过于频繁的搜索造成数据表被锁。如图 10 所示:

Dz196.gif

这个机制可以很大程度上减少服务器的搜索负载,强烈推荐开启此设置,推荐设置值为 10。

11、最大搜索结果

如图 11 所示:

Dz197.gif

每次搜索获取的最大结果数,建议设置为默认值 500,或在不超过 1500 范围内取值。这个对于一般的搜索的准确度的补充,因为搜索未必一下子就达到用户的搜索需要。那么可以设置为 100-200 已经足够了。这个设置也是可以轻微减少服务器的负担。

参考来源[ ]

Discuz! 6.0使用手册导航

Discuz! 6.0安装:

Discuz! 6.0产品概况| Discuz! 6.0环境要求| Discuz! 6.0安装详细过程| Discuz! 6.0文件及目录结构| Discuz! 6.0安装的常见问题| 附录 如何在Discuz上安装个人空间SupeSite/x-space指南| 附录 论坛一键式安装Discuz!EXP及EasyDiscuz指南| 附录 discuz本地运行环境构建(windows)

Discuz! 6.0使用:

Discuz! 6.0日常使用| Discuz! 6.0 config.inc.php配置问题| Discuz! 6.0前台管理操作说明| Discuz! 6.0用户权限设定| Discuz! 6.0服务器相关| Discuz! 6.0后台基本设置| Discuz! 6.0后台论坛管理| Discuz! 6.0后台用户管理| Discuz! 6.0后台帖子管理| Discuz! 6.0后台扩展设置| Discuz! 6.0后台其它设置| Discuz! 6.0后台社区营销| Discuz! 6.0后台系统工具

Discuz! 6.0风格模板

Discuz!6.0风格制作| Discuz!6.0界面风格与模板定制| Discuz!6.0风格高级应用| Discuz!6.0头部模板header详解| Discuz!6.0页脚模板footer详解

Discuz! 6.0插件

Discuz!6.0插件简介| Discuz!6.0插件安装| Discuz!6.0插件列表

Discuz! 6.0升级

Discuz!6.0升级指南| Discuz!6.0阶段升级说明| Discuz!6.0版本更新记录

Discuz! 6.0开发

Discuz!6.0插件设计 | Discuz!6.0插件设置及管理| Discuz!6.0插件的钩子使用技巧| Discuz!6.0插件代码的安全规范| Discuz!6.0PassPort接口技术文档

Discuz! 6.0 FAQ

Discuz!6.0经验技巧| Discuz!6.0防御CC攻击说明| Discuz!6.0搜索引擎优化| Discuz!6.0论坛程序