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

此文章源于:http://www.wangchao.net.cn/bbsdetail_581503.html

动态发布站点的并发访问升级简易方案 问题:
   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.asp
   2、将Content.asp代码首处做以下修改:
   ID=request("ID")
   txtfile="Item_" + cstr(ID)+".htm"
   if FileExist(txtfile) then
   else
   GenHTML(txtfile,"Item_bak.asp?id="+cstr(ID))
   end if
   response.redirect txtfile
   response.end
   其中函数FileExist为判断 txtfile文件是否存在于服务器上,函数GenHTML为 利用xmlhttp服务器端组件将读取item_bak.asp?id=1234的文件的html内容后写在服务器上的当前目录。
   这样,每一篇文章就会仅被读取数据库一次,然后之后所有的访问都被定向到静态html文件,缓解服务器压力。
  总结:
   唯一的不足是会增加硬盘空间需求。
   但是基本上不会造成连接混乱,严守原来布局。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值