点击这里给我发消息 点击这里给我发消息

Discuz! 后台使用系列教程: 系统设置-全局-优化设置

添加时间:2013-12-6
    相关阅读: 虚拟主机 搜索引擎优化 网页 设计 WEB 技术 页面
 

一、搜索引擎优化

随着网站数量的增多,网站的宣传越来越多地依赖搜索引擎的搜索结果。搜索引擎一般都使用一种称为搜索引擎机器人的技术,这种机器人会根据一定规则的在 Internet 上访问站点,并把有价值的页面收集到搜索引擎的缓存数据库保存。搜索机器人对静态页面的处理能力要强于动态页面。如果一个站点都是 .html 页面,那么它被搜索引擎全文搜到的可能性就要比 .PHP 的页面高几个数量级,因此而来的访问量也会高出很多。Discuz! 提供了 Archiver、URL 静态化、百度 SiteMap 等功能,对搜索引擎提供良好的支持。下面我们分为两部分讲解一下 Discuz! 的这些功能。

1、搜索引擎优化

1)启用Archiver

Discuz! Archiver 能够将论坛的内容模拟成静态页面,以便搜索引擎获取其中的内容。高级使用技巧请参考《用户使用说明书》。这个功能有四个选择,前三个选项,一看就明白,不再多说;最后一项“启用,但当用户使用浏览器访问时自动转向动态页面”,当打开 Archiver 网址如时,会自动转向一个动态的 php 的页面,如当打开 http://www.cnzhanzhang.com/archiver/fid-2.html,程序会自动转向 http://www.cnzhanzhang.com/forumdisply.php?fid=2。

2)URL静态化

Discuz! 4.1.0 新增了 Discuz! URL 静态化功能。此功能可以将 Discuz! Archiver 及部分常用页面(如 forumdisplay.php、viewthread.php、viewpro.php 等)进行 URL 静态化转换,形成类似 http://www.demo.net/discuz/forum-1-1.html 形式的超级链接,从而使论坛内容更容易被搜索引擎挖掘,提高被收录的机率。

这个功能对服务器环境有特殊要求,独立主机用户需要对 Web 服务器增加相应的 Rewrite 规则,因此需要服务器权限才可使用。对于虚拟主机用户,需要向您的空间服务商进行咨询空间是否支持 Rewrite 以及是否支持对站点目录中 .htaccess 的文件解析,只有满足这两条件,URL 静态化功能才会生效。详细的的配置,可以参考一下 http://www.discuz.net/usersguide/advanced_urlrewrite.htm#title 。
上面那个网址,详细介绍了虚拟主机、IIS、apache、zeus 静态化的配置,这里不再重复。下面介绍一下动态的 php 页面对应的 rewrite 规则。我们主要对五个页面进行了静态化:

a)主题列表页面(forumdisplay.php)静态化
对应的静态化规则是:
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2

b)主题内容页面(viewthread.php)静态化
对应的静态化规则是:
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2

c)个人空间页面(space.php)静态化
对应的静态化规则是:
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2

d)标签页面(tag.php)静态化
对应的静态化规则是:
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

e)Discuz! Archiver 静态化
对应的静态化规则是:
RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
您可以根据自己的实际情况选择开启,开启某一项,只要将相应的静态化规则添加到服务器配置文件或者 .htaccess中。

3)网页头部的优化

网页头部信息也是搜索引擎收录的重要依据,所以我们在论坛的后台也有针对性的设置,如下图所示:

a)标题附加字

网页标题通常是搜索引擎关注的重点,本附加字设置将出现在标题中论坛名称的后面,如果有多个关键字,建议用 "|"、","(不含引号) 等符号分隔。

b)Meta Keywords

Keywords 项出现在页面头部的 Meta 标签中,用于记录本页面的关键字,多个关键字间请用半角逗号 "," 隔开。

c)Meta Description

Meta 标签中的 Description ,用于记录本页面的概要与描述。这个 Meta 值是唯一被所有搜索引擎认可的,所以这个值应该好好设计,字数在40字以内,每个页面应该有一个唯一的独特的 description 描述,如果所有页面都用同一个描述, 搜索引擎会忽略所有该值,甚至认为你在作弊

d)其它头部信息

如需在 中添加其它的 HTML 代码,可以使用本设置,否则请留空,如增加一段 js 代可以将代码拷贝到文本域内,效果如图所示:

特别提醒,搜索引擎一般对 javascript 不感冒,尽量不要在页面的间放置大量的 javascript 函数,这样会使搜索引擎不知所措,而且大部分搜索引擎在爬行你的页面时都有时间限制,或者最大信息量限制,在前面放置很多 javascript 代码会使搜索引擎运行缓慢最主要还是这部分代码把你后面有用信息占用了,使得搜索引擎无法获取你页面有用的信息。

2)Sitemap 相关设置

开启这个功能之后,会在论坛根目录的 forumdata 目录下生成一个 sitemap.xml,这个 XML 文件按照标准格式列出了网站论坛发布的帖子的相关信息。

a)启用百度 SiteMap

“启用百度SiteMap”后面的单选按钮,选择是,然后提交。

b)SiteMap 缓存有效期

设置 SiteMap 的缓存更新时间,单位是小时。因为 sitemap.xml 最大为 10M,所以更新比较快的论坛,应该将这个选项的值设置的小一些,以免由于更新的帖子过多造成 sitemap.xml 大于 10M,影响百度对论坛的收录

注:关于 Sitemap 的更多信息,请参考直接访问 http://www.baidu.com/search/pageop.htm

二、页面缓存设置

在整体的论坛运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高论坛的负载能力,降低 MySQL 的资源消耗迫在眉睫。当然,Discuz!也已经早注意到这点,页面缓存就是其中的一个方面。下面就详细说明一下 Discuz! 的页面缓存功能是怎样降低MySQL的资源消耗的。

大家都知道,降低 MySQL 的资源消耗的方法除了使用高效率的 SQL 语句之外(当然,这一点 Discuz! 在每一个发布版本中都已经仔细研究了,所以每一句 SQL 都是很优化的),更直接的方法就是不去查询数据库。经过我们长期的分析发现,在网站实际运行过程中,网站论坛用户主要浏览的是每个主题帖子的详细页面,而这其中访问者的身份又以游客居多。根据这个规律,从 Discuz!5.5 开始,更改了以前版本的主题缓存机制,将游客访问的页面通过静态的 html 文件缓存起来,下一个游客在访问同一个主题时,直接调用缓存内容,而不用去再次查询数据库,这样可以有效的减轻数据库服务器的压力。同时首页我们也按照游客缓存的方法进行了纯静态化 html 页面的缓存。

那么缓存是怎么生成、保存在哪和怎么更新呢?首先主题缓存是在游客第一次访问某帖子时,如果该论坛开启了主题缓存功能,那么会估算该帖子被访问的频度,然后跟你设置的主题缓存系数比较,将帖子内容缓存到磁盘,在下一个游客来看时,直接读取出来。对于首页的话,直接就是游客第一次访问的时候,将页面静态化存储起来。其次,页面缓存保存问题。缓存会产生大量的文件,我们将其分散成三层目录,避免单个目录底下文件过多影响系统速度。每个目录可以存放 400w 个帖子主题,足已应付绝大部分大型论坛的需求。这里需要说明的一点,首页我们是当作 tid 等于 0 的帖子进行缓存。最后是缓存的更新。对于每个缓存,我们都有特定的缓存时间,而且是可以独立进行设置,站长可以根据自己站点的特点来灵活定义。

Discuz! 页面缓存的结构就是这样的,那究竟是在哪里设置的呢?进入到 Discuz! 论坛的管理后台,点击全局 => 优化设置 => 页面缓存设置,就可以看到如图的界面

对照上面的介绍,实际操作一下就很明了了。

至于开启主题缓存的效果吧,大家在自己的论坛上开启之后,看看页面下方的查询时间的变化就知道了!如果你的论坛访问人数很少,帖子也不多,开启页面缓存就没多大必要了,包括虚拟主机用户,那个是拿空间和准确性换效率的问题。

三、服务器优化详解

我们在“论坛的后台 => 全局 => 优化设置 => 服务器优化”这个选项里面有如下一些选项,大家或许对后台的设置不是非常的了解,那么下面我对该配置做些详细的说明,希望对你有所帮助。

1、页面 Gzip 压缩

将页面内容以 gzip 压缩后传输,可以加快传输速度,需 PHP 4.0.4 以上且支持 Zlib 模块才能使用。
GZIP 最早由 Jean-loup Gailly 和 Mark Adler 创建,用于 UNIX 系统的文件压缩。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 GZIP 格式的。

现今已经成为 Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

HTTP协议上的 GZIP 编码是一种用来改进 WEB 应用程序性能的技术。大流量的 WEB 站点常常使用 GZIP 压缩技术来让用户感受更快的速度。

所以这个在基本支持的条件的情况下最好都打开。

在 apache 下也有实现同样功能的一个 gzip 模块。

2、点击数延迟更新

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

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

3、禁止浏览器缓冲

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

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

4、启用 URL 传递 sid

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

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

5、最大在线人数

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

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

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

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

这个选项是一个比较重要的设置,因为设置过大,你的资源会消耗过多的,特别是站点访问量比较大的站点。

这个实现是把所有的访问记录在 seesions,对于在改设置时间内没有活动的用户,就会被踢出这个记录6。

对于一般的站点,建议设置15分钟。

具体的细节可以参考 include/global.func.php 的 updatesession() 函数。

7、系统负载控制

本选项用于部分 Unix/Linux 主机下,系统高于此值时会禁止新用户访问直至负载下降,通常情况可设置为 5~10,0 为不限制。本功能会轻微加重服务器负担
这个功能是通过调用公共页面 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 为不限制。

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

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

9、搜索设置

搜索是论坛最消耗资源的一个应用,建议对非管理组都不开放全文搜索(用户设置=>用户组设置=>具体详情=>允许使用搜索: 来限制部分用户组的搜索权限。

所以这个值必须有所限制,最好设置为30秒。

10、60 秒最大搜索次数

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

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

11、最大搜索结果

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

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册