动态发布站点的并发访问升级简易方案

上网导航 2023-10-19 68 0条评论
摘要: 问题:asp/php等动态建站,往往出现访问量较大后出现网站访问故障问题,问题在哪呢?通常网站有新闻栏目,假设一个网站新闻栏目建立在/news/目录下...

问题:asp/php等动态建站,往往出现访问量较大后出现网站访问故障问题,问题在哪呢?通常网站有新闻栏目,假设一个网站新闻栏目建立在/news/目录下 ,通常都有一个显示某条纪录的item.asp?id=1234,用户访问某个连接时候,往往调用这个动态脚本文件,进行打开数据库连接、查找纪录。。。等一系列动作。并发10个人没问题,100个、1000个问题就来了,导致服务器压力增大。但实际上,由于ID为1234文章在你发布的时候,内容已经确定,所以基本上A用户访问跟B用户访问时候做的是同一个动作,内容也是一样,但是却有N次数据库打开读取动作。一般情况下,数据库操作属于高消耗系统资源的操作。 思路:知道此原因,我们可以读一次数据库,然后将读取得内容存储为静态页面,以后的访问读取此静态页面。这是提高站点并发访问的基本措施。一台普通的PC服务器处理静态页面访问,一天可以达到700W 此请求。但是,可能很多站点已经在设计时就属于动态建站考虑,所以包括连接、导航等依赖于动态模式,全部改成类似新浪、搜狐等静态发布模式不恰当,所以需要在不改变整体站点访问结构上进行调整。 具体方案:对类似 /item.asp?ID=1234 这样的asp程序进行以下修改:1、拷贝一份这样的文件,假设名为item_bak.asp2、将Content.asp代码首处做以下修改:ID=request("ID")txtfile="Item_" + cstr(ID)+".htm"if FileExist(txtfile) thenelseGenHTML(txtfile,"Item_bak.asp?id="+cstr(ID))end ifresponse.redirect txtfileresponse.end其中函数FileExist为判断 txtfile文件是否存在于服务器上,函数GenHTML为 利用xmlhttp服务器端组件将读取item_bak.asp?id=1234的文件的html内容后写在服务器上的当前目录。这样,每一篇文章就会仅被读取数据库一次,然后之后所有的访问都被定向到静态html文件,缓解服务器压力。 总结:唯一的不足是会增加硬盘空间需求。但是基本上不会造成连接混乱,严守原来布局。

文章版权及转载声明:

作者:上网导航本文地址:https://www.90xe.com/post/6253.html发布于 2023-10-19
文章转载或复制请以超链接形式并注明出处技术导航

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏