discuz

Discuz性能优化和配置文件config_global.php文件设置说明

1、性能优化

  首先想到的是内置的性能优化,在后台的 全局 – 性能优化

  discuz服务器优化:

  是否优化更新主题浏览量:是

  查看数开启防刷新:是。如果选择“否”,主题、空间、日志每访问一次,浏览量增1,会增大服务器压力,建议选择“是”

  附件下载量延迟更新:是。延迟更新附件的浏览量,可明显降低访问量很大的站点的服务器负担,建议开启本功能

  最大在线人数:范围 10~65535,建议设置为平均在线人数的 10 倍左右

  在线保持时间(分钟):根据访问情况设置合理的数值,访问量大的站点应当调小该数值,设置范围 5 – 60,过大或者过小的设置都有可能会增大服务器资源开销

  开启图片延时加载:是。当开启后,页面中的图片在浏览器的当前窗口时再加载,可明显降低访问量很大的站点的服务器负担,建议开启本功能

参与模块聚合数据条数:此值影响模块聚合时MYSQL检索数据的条数,设置太大将严重影响MYSQL的性能,设置太小将会影响模块聚合结果数据的理想程度。0为关闭此功能

  是否关闭session机制:关闭session机制以后,可明显降低站点的服务器负担,建议在线用户数超过2万时开启本功能(注意:游客数和用户的在线时长将不再进行统计,论坛首页和版块列表页面的在线用户列表功能将不可用)

Discuz性能优化和配置文件config_global.php文件设置说明

  discuz内存优化

  启用内存优化功能将会大幅度提升程序性能和服务器的负载能力,内存优化功能需要服务器系统以及PHP扩展模块支持

  目前支持的内存优化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis、YAC、APCu,优化系统将会依据当前服务器环境依次选用接口

  内存接口的主要设置位于/config/config_global.php 当中,您可以通过编辑 config_global.php 进行高级设置,详细参考 discuz config_global.php文件设置说明

Discuz性能优化和配置文件config_global.php文件设置说明

  discuz论坛页面缓存设置优化

  缓存论坛首页有效期:设置论坛首页缓存更新的时间,单位为秒,0 为关闭(此处关闭以后,缓存系数将不再起作用),建议设置为 900。此功能只针对游客

  缓存帖子有效期:设置帖子页面缓存更新的时间,单位为秒,0 为关闭。请根据实际情况进行调整,建议设置为 900。另外,请通过编辑论坛来指定帖子页面缓存系数

  缓存系数:页面缓存功能可以将会员经常访问的主题临时缓存起来,缓解大型论坛服务器压力。缓存阀值范围 0 – 100,建议设置为 40 ,0 为关闭。在磁盘空间允许的情况下,适当调高缓存系数,可以提高缓存效果

Discuz性能优化和配置文件config_global.php文件设置说明

2、discuz防灌水设置

  discuz有一套完善的防灌水设置,我们可以设置邀请注册、邮箱验证、只能QQ/微信登陆、发帖时间间隔、词语过滤等

  词语过滤是非常关键的,一不小心论坛就会被关闭,甚至更严重,已经有很多先例了,所以设置一套完整的敏感词过滤机制非常重要

3、dicuz手机端优化设置

  现在互联网的流量都集中在移动端了,一个好的手机模板非常重要!discuz手机模板可以采用移动网页加速器(MIP)。①MIP 提供与 MIP Runtime 兼容封装好的组件来实现,不允许自定义 JavaScript 。②使用inline的css,CSS 内联可以减少客户端的开销。③MIP缓存能够帮站长加速网页,MIP-Cache 将会把 MIP 网页缓存到百度 CDN 中。更多MIP详情请参考https://www.mipengine.org/doc/03-principle-of-mip.html

4、https设置

  HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。

  HTTPS和HTTP的区别主要为以下四点:

  ①、https协议需要到ca申请证书,一般免费证书很少,需要交费。

  ②、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

  ③、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  ④、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

5、discuz SEO优化

  伪静态设置:URL 静态化可以提高搜索引擎抓取,开启本功能需要对 Web 服务器增加相应的 Rewrite 支持

Discuz性能优化和配置文件config_global.php文件设置说明

设置完以后要在.htaccess文件写入伪静态代码

6.discuz CDN优化

  CDN的全称是Content Delivery Network,即内容分发网络。依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。特别是js、css、图片,放在cdn上加载速度更快。

7、discuz开启Gzip

  假设我们访问的一个页面有100kb,如果已经开启Gzip了,服务器会把这个页面压缩成zip文件,可能只有10kb或更小,就会节省带宽和下载时间。当浏览器可以下载zip文件,解压,并且渲染给用户。下载很快,页面加载也很快。

8、discuz数据库优化。

数据表优化可以去除数据文件中的碎片,使记录排列紧密,提高读写速度。

后台 – 站长 – 数据库 – 优化

后台 – 站长 – 帖子分表/用户表优化/主题分表。分表功能可以将帖子分在不同的数据表中,适合帖子数很多并且运行效率受到影响的站点使用

9、discuz插件筛选

  在没有必要的情况尽量少装插件,有些插件调用很多sql反而降低效率

10、discuz模板优化

  精简压缩css/js文件,尽量减少js的使用,或者使用封装好的js

discuz config_global.php文件设置说明


<?php
 
$_config = array();
 
// ----------------------------  CONFIG DB  ----------------------------- //
// ----------------------------  数据库相关设置---------------------------- //
 
/**
 * 数据库主服务器设置, 支持多组服务器设置, 当设置多组服务器时, 则会根据分布式策略使用某个服务器
 * @example
 * $_config['db']['1']['dbhost'] = 'localhost'; // 服务器地址
 * $_config['db']['1']['dbuser'] = 'root'; // 用户
 * $_config['db']['1']['dbpw'] = 'root';// 密码
 * $_config['db']['1']['dbcharset'] = 'gbk';// 字符集
 * $_config['db']['1']['pconnect'] = '0';// 是否持续连接
 * $_config['db']['1']['dbname'] = 'x1';// 数据库
 * $_config['db']['1']['tablepre'] = 'pre_';// 表名前缀
 *
 * $_config['db']['2']['dbhost'] = 'localhost';
 * ...
 *
 */
$_config['db'][1]['dbhost']         = 'localhost';
$_config['db'][1]['dbuser']         = 'root';
$_config['db'][1]['dbpw']       = 'root';
$_config['db'][1]['dbcharset']      = 'utf8';
$_config['db'][1]['pconnect']       = 0;
$_config['db'][1]['dbname']         = 'ultrax';
$_config['db'][1]['tablepre']       = 'pre_';
 
/**
 * 数据库从服务器设置( slave, 只读 ), 支持多组服务器设置, 当设置多组服务器时, 系统根据每次随机使用
 * @example
 * $_config['db']['1']['slave']['1']['dbhost'] = 'localhost';
 * $_config['db']['1']['slave']['1']['dbuser'] = 'root';
 * $_config['db']['1']['slave']['1']['dbpw'] = 'root';
 * $_config['db']['1']['slave']['1']['dbcharset'] = 'gbk';
 * $_config['db']['1']['slave']['1']['pconnect'] = '0';
 * $_config['db']['1']['slave']['1']['dbname'] = 'x1';
 * $_config['db']['1']['slave']['1']['tablepre'] = 'pre_';
 * $_config['db']['1']['slave']['1']['weight'] = '0'; //权重:数据越大权重越高
 *
 * $_config['db']['1']['slave']['2']['dbhost'] = 'localhost';
 * ...
 *
 */
$_config['db']['1']['slave'] = array();
 
//启用从服务器的开关
$_config['db']['slave'] = false;
/**
 * 数据库 分布部署策略设置
 *
 * @example 将 common_member 部署到第二服务器, common_session 部署在第三服务器, 则设置为
 * $_config['db']['map']['common_member'] = 2;
 * $_config['db']['map']['common_session'] = 3;
 *
 * 对于没有明确声明服务器的表, 则一律默认部署在第一服务器上
 *
 */
$_config['db']['map'] = array();
 
/**
 * 数据库 公共设置, 此类设置通常对针对每个部署的服务器
 */
$_config['db']['common'] = array();
 
/**
 *  禁用从数据库的数据表, 表名字之间使用逗号分割
 *
 * @example common_session, common_member 这两个表仅从主服务器读写, 不使用从服务器
 * $_config['db']['common']['slave_except_table'] = 'common_session, common_member';
 *
 */
$_config['db']['common']['slave_except_table'] = '';
 
/**
 * 内存服务器优化设置
 * 以下设置需要PHP扩展组件支持,其中 memcache 优先于其他设置,
 * 当 memcache 无法启用时,会自动开启另外的两种优化模式
 */
 
//内存变量前缀, 可更改,避免同服务器中的程序引用错乱
$_config['memory']['prefix'] = 'discuz_';
 
/* reids设置, 需要PHP扩展组件支持, timeout参数的作用没有查证 */
$_config['memory']['redis']['server'] = '';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 1;
$_config['memory']['redis']['timeout'] = 0;
$_config['memory']['redis']['requirepass'] = '';
/**
 * 是否使用 Redis::SERIALIZER_IGBINARY选项,需要igbinary支持,windows下测试时请关闭,否则会出>现错误Reading from client: Connection reset by peer
 * 支持以下选项,默认使用PHP的serializer
 * [重要] 该选项已经取代原来的 $_config['memory']['redis']['igbinary'] 选项
 * Redis::SERIALIZER_IGBINARY =2
 * Redis::SERIALIZER_PHP =1
 * Redis::SERIALIZER_NONE =0 //则不使用serialize,即无法保存array
 */
$_config['memory']['redis']['serializer'] = 1;
 
$_config['memory']['memcache']['server'] = '';          // memcache 服务器地址
$_config['memory']['memcache']['port'] = 11211;         // memcache 服务器端口
$_config['memory']['memcache']['pconnect'] = 1;         // memcache 是否长久连接
$_config['memory']['memcache']['timeout'] = 1;          // memcache 服务器连接超时
 
$_config['memory']['apc'] = 0;                          // 启动对 APC 的支持
$_config['memory']['apcu'] = 0;                         // 启动对 APCu 的支持
$_config['memory']['xcache'] = 0;                       // 启动对 xcache 的支持
$_config['memory']['eaccelerator'] = 0;                 // 启动对 eaccelerator 的支持
$_config['memory']['wincache'] = 0;                     // 启动对 wincache 的支持
$_config['memory']['yac'] = 0;                          //启动对 YAC 的支持
$_config['memory']['file']['server'] = '';              // File 缓存存放目录,如设置为 data/cache/filecache ,设置后启动 File 缓存
// 服务器相关设置
$_config['server']['id']        = 1;            // 服务器编号,多webserver的时候,用于标识当前服务器的ID
 
// 附件下载相关
//
// 本地文件读取模式; 模式2为最节省内存方式,但不支持多线程下载
// 1=fread 2=readfile 3=fpassthru 4=fpassthru+multiple
$_config['download']['readmod'] = 2;
 
// 是否启用 X-Sendfile 功能(需要服务器支持)0=close 1=nginx 2=lighttpd 3=apache
$_config['download']['xsendfile']['type'] = 0;
 
// 启用 nginx X-sendfile 时,论坛附件目录的虚拟映射路径,请使用 / 结尾
$_config['download']['xsendfile']['dir'] = '/down/';
 
// 页面输出设置
$_config['output']['charset']           = 'utf-8';  // 页面字符集
$_config['output']['forceheader']       = 1;        // 强制输出页面字符集,用于避免某些环境乱码
$_config['output']['gzip']          = 0;        // 是否采用 Gzip 压缩输出
$_config['output']['tplrefresh']        = 1;        // 模板自动刷新开关 0=关闭, 1=打开
$_config['output']['language']          = 'zh_cn';  // 页面语言 zh_cn/zh_tw
$_config['output']['staticurl']         = 'static/';    // 站点静态文件路径,“/”结尾
$_config['output']['ajaxvalidate']      = 0;        // 是否严格验证 Ajax 页面的真实性 0=关闭,1=打开
$_config['output']['iecompatible']      = 0;        // 页面 IE 兼容模式
 
// COOKIE 设置
$_config['cookie']['cookiepre']         = 'discuz_';    // COOKIE前缀
$_config['cookie']['cookiedomain']      = '';       // COOKIE作用域
$_config['cookie']['cookiepath']        = '/';      // COOKIE作用路径
 
// 站点安全设置
$_config['security']['authkey']         = 'asdfasfas';  // 站点加密密钥
$_config['security']['urlxssdefend']        = true;     // 自身 URL XSS 防御
$_config['security']['attackevasive']       = 0;        // CC 攻击防御 1|2|4|8
 
$_config['security']['querysafe']['status'] = 1;        // 是否开启SQL安全检测,可自动预防SQL注入攻击
$_config['security']['querysafe']['dfunction']  = array('load_file','hex','substring','if','ord','char');
$_config['security']['querysafe']['daction']    = array('@','intooutfile','intodumpfile','unionselect','(select', 'unionall', 'uniondistinct');
$_config['security']['querysafe']['dnote']  = array('/*','*/','#','--','"');
$_config['security']['querysafe']['dlikehex']   = 1;
$_config['security']['querysafe']['afullnote']  = 0;
 
$_config['security']['creditsafe']['second']    = 0;        // 开启用户积分信息安全,可防止并发刷分,满足 times(次数)/second(秒) 的操作无法提交
$_config['security']['creditsafe']['times']     = 10;
 
$_config['admincp']['founder']          = '1';      // 站点创始人:拥有站点管理后台的最高权限,每个站点可以设置 1名或多名创始人
                                // 可以使用uid,也可以使用用户名;多个创始人之间请使用逗号“,”分开;
$_config['admincp']['forcesecques']     = 0;        // 管理人员必须设置安全提问才能进入系统设置 0=否, 1=是[安全]
$_config['admincp']['checkip']          = 1;        // 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登陆后台时设置 0。
$_config['admincp']['runquery']         = 0;        // 是否允许后台运行 SQL 语句 1=是 0=否[安全]
$_config['admincp']['dbimport']         = 1;        // 是否允许后台恢复论坛数据  1=是 0=否[安全]
 
/**
 * 系统远程调用功能模块
 */
 
// 远程调用: 总开关 0=关  1=开
$_config['remote']['on'] = 0;
 
// 远程调用: 程序目录名. 出于安全考虑,您可以更改这个目录名, 修改完毕, 请手工修改程序的实际目录
$_config['remote']['dir'] = 'remote';
 
// 远程调用: 通信密钥. 用于客户端和本服务端的通信加密. 长度不少于 32 位
//          默认值是 $_config['security']['authkey']    的 md5, 您也可以手工指定
$_config['remote']['appkey'] = md5($_config['security']['authkey']);
 
// 远程调用: 开启外部 cron 任务. 系统内部不再执行cron, cron任务由外部程序激活
$_config['remote']['cron'] = 0;
 
// $_GET|$_POST的兼容处理,0为关闭,1为开启;开启后即可使用$_G['gp_xx'](xx为变量名,$_GET和$_POST集合的所有变量名),值为已经addslashes()处理过
$_config['input']['compatible'] = 1;
 
// Addon Setting
//$_config['addonsource'] = 'xx1';
//$_config['addon'] = array(
//    'xx1' => array(
//  'website_url' => 'http://127.0.0.1/AppCenter',
//  'download_url' => 'http://127.0.0.1/AppCenter/index.php',
//  'download_ip' => '',
//  'check_url' => 'http://127.0.0.1/AppCenter/?ac=check&file=',
//  'check_ip' => ''
//    )
//);
 
?>