在目前最新版本的产品中,我们提供了缓存静态文件的解决方案,就是使用SQUID做静态前端,将论坛中的大部分静态文件布署或外链到一个新的HTTP链接上,其中可以外链的静态文件包括:
1.Discuz.web/Javascript/ 下所有以‘template_’打头的JS文件以及该文件夹下的部分js文件。
2.模版文件夹下的所有CSS或IMAGE文件(空间相册文件夹除外) 3.前台Image文件夹下的Medal(勋章),Topicidentify(主题鉴定图标)下的所有文件。 同时在最新的产品中,我们新增了一个entlib.config文件(位于discuz.web\config\文件夹下),用于配置所有与Discuz!NT企业版相关的配置信息,上面所说的HTTP外链地址,就在这个文件中有相应配置,我们只要编辑其中的相应节点信息,就可以启用这个功能了,比如下面的这个配置: <?xml version="1.0"?>
<EntLibConfigInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Medaldir>http://10.0.8.12:81/myimage/medals/</Medaldir> <!--勋章--> <Topicidentifydir>http://10.0.8.12:81/myimage/identify/</Topicidentifydir> <!--主题鉴定图标--> <Jsdir>http://10.0.8.12:81/javascript/</Jsdir> <!--javascript/目录下的js路径勋章--> </EntLibConfigInfo> 通过上面的文件配置,就可以将前面所说的1和3这两大类静态文件的外链指到别的地址上了。当然如果要设置模板文件夹下的那些CSS,IMAGE文件,我们还要在管理后台中的模板列表中进行相关设置。这里为了方便起见,我直接在数据库中的dnt_templates表(默认)将相应的模板静态文件外链信息直接写上,如下图:
我们的产品目前可以支持为不同的模板设置不同的静态文件外链地址,如上图。 这样,当我们设置完成上面的内容之后,就可以在IE页面源码中看到当前的静态文件已被链接新的地址上去了,如下图(showforum.aspx页):
当然,目前完成了程序的开发和配置,下面着重介绍如下如果配置SQUID,以架构启用静态前端服务。
目前在SQUID上有两个平台版本,分别是LINUX和WINDOWS,我们的产品支持这个平台上的SQUID程序。这里为了方便布署,只介绍WINDOW平台上的安装步聚(网上LINUX下安装SQUID的资料非常丰富)。
首先,从下面地址上下载相应的SQUID windows版本到本地。 http://squid.acmeconsulting.it/
然后将解压该文件到C盘目录下,在squid\etc目录下把: 1.squid.conf.default拷贝一份重新命名为squid.conf
2.cachemgr.conf.default拷贝一份重新命名为cachemgr.conf 3.mime.conf.default拷贝一份重新命名为mime.conf
接着配置squid.conf,设置相关节点。下面做一下介绍: #启用当前主机的81端口为squid服务端口
http_port 81 vhost #浏览器上显示的主机名称 visible_hostname cache.discuznt
因为squid支持集群布署,所以它提供了相应的配置节点,即cache_peer,详细说明参见该链接。 这里我把布署环境做一下说明,在本部门的服务器环境中,单拿出两台机器互相做为sibling(姊妹)邻居。 SQUID运作模式:
(责任编辑:admin)1. 当Squid Server 没有资料时,会先向Sibling 的Squid Server 要资料,如果Sibling没资料,就跳过它直接向Parent 要。 2. 向Parent 要资料,然後一直等,直到Parent 给它资料为止(Parent 自己有的资料或上Internet 去拿)。 3. 没有Parent 时,就自己上Internet 去get。 4. 如果这三者都拿不到资料,才向用户端回报拿不到资料。 |