标签:discuz blog http io os 使用 java ar strong
在目前最新版本的产品中,我们提供了缓存静态文件的解决方案,就是使用SQUID做静态前端,将论坛中的大部分静态文件布署或外链到一个新的HTTP链接上,其中可以外链的静态文件包括:
同时在最新的产品中,我们新增了一个entlib.config文件(位于discuz.web\config\文件夹下),用于配置所有与Discuz!NT企业版相关的配置信息,上面所说的HTTP外链地址,就在这个文件中有相应配置,我们只要编辑其中的相应节点信息,就可以启用这个功能了,比如下面的这个配置:
通过上面的文件配置,就可以将前面所说的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目录下把:
接着配置squid.conf,设置相关节点。下面做一下介绍:
因为squid支持集群布署,所以它提供了相应的配置节点,即cache_peer,详细说明参见该链接。 这里我把布署环境做一下说明,在本部门的服务器环境中,单拿出两台机器互相做为sibling(姊妹)邻居。
这里我将相应的产品静态文件布署到10.0.8.12机器上,并配置了一个端口为7001的IIS站点(注:实际环境下可以省略这一步,将squid缓存的站点信息配置到其squid.conf文件中)。这样,其结点信息如下所示:
同样将上面的设置复制到10.0.8.14这台机器上的81端口上运行的squid的相应节点。
下面接着介绍10.0.8.12上的squid.conf配置信息
上面的配置信息说明:
Squid内在的将每个客户端请求标记为层叠或不可层叠。不可层叠的请求看起来不会导致cache命中。例如,POST请求的响应几乎从不会被cache。在squid能简单的连接到原始服务器时,转发不可cache目标的请求到邻居cache,纯粹是浪费资源。某些区分层叠和不可层叠请求的规则,在squid里难于编码。例如,POST和PUT方式总是不可层叠的。然而,hierarchy_stoplist指令允许你定制这种算法。它包含一个字符串列表,当在URI里发现它们时,squid将请求标记为不可层叠。默认的该列表是:
hierarchy_stoplist ? cgi-bin这样,任何包含问号或cgi-bin字符串的请求匹配该列表,变成不可层叠。
默认的,squid直接发送不可层叠的请求到原始服务器。
可以把其理解为对指定扩展名和链接串用包括特定字符的请求不予缓存和查询。即aspx.html这类请求页面直接转发到原始服务器(originserver )。
下面注释的信息曾用于在生产环境下进行配置
注:cache_peer_domain指令是cache_peer_access指令的早期形式。相对于使用完整的访问控制特性,它仅使用URI里的域名。它常用于通过域名区分一组父cache。例如,假如你有一个遍布全球的内部网,你也许想发送请求到位于各自大陆的cache:
定义对邻居cache的访问列表。也就是说,它决定哪个请求允许或不允许发送到邻居cache。参见该链接。
注:C:\squid\sbin\squid.exe.log文件也很重要,它是squid启动日志,当应用程序出现问题时,可从其中找到一些问题。
配置完这些信息之后,在命令行窗口下cd 到c:\squid\sbin目录下执行,执行
这样就在机器上安装的squid的服务。下面就启动该服务:
这时在IE上访问squid服务器:
http://10.0.8.12:81/(你的squid服务器IP地址),这时squid会将请求转到http://10.0.8.12:7001/(之前IIS中创建的web服务器地址)
同样在10.0.8.14上也安装并配置 squid,不过要在cache_peer节点上做上面所说的那个配置,就完成了SQUID的配置工作。
当然,squid缓存的文件基本上都是1:1的,即一个js文件会生成一个缓存文件,大小尺寸没什么变化,只不过如果是图片这类文件的话,squid生成的缓存文件是无法用看图软件打开的,而文本文件就没这个问题了。
注:squid官方站点有详细的配置资料信息,本文介绍的配置内容可作为入门参考使用。
最终配置文件下载链接,点击这里(压缩包中的squid.conf文件)。另外我还在本地用LoadRunner做了并发用户1000(v_user)的测试,效果不错,报告下载地址点击这里。
同时,squid还提供了一个叫squidclient(位于C:\squid\bin)的客户端工具很有用,比如获取squid运行时的一些系统信息信息:
当然用的最多的还是PURGE指令,它会强制更新某一url缓存信息,形如
更多的信息可以使用帮助命令:
标签:discuz blog http io os 使用 java ar strong
原文地址:http://www.cnblogs.com/hllnj2008/p/3986687.html