个人首页:
rewriterule ^/users/photos/([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)\.html /photoblog/PhotoBlogCtrl?page=PhotoHomePage&viewID=$1&pageNo=$2 [P,L]
现在的url:
以前的url:
群组图库:
rewriterule ^/groups/photos/([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)\.html /photoblog/PhotoGroupCtrl?page=GroupHomePicPoolPage&group_id=$1&pageNo=$2 [P,L]
rewriterule ^/groups/photos/([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)\.html /photoblog/PhotoGroupCtrl?page=GroupHomePicPoolPage&group_id=$1&pageNo=$2 [P,L]
现在的url:
以前的url:
同时用squid做缓存,提高性能。
:)
本文主要是针对非登录用户
一、优化单页面的链接
单个页面现在的链接:
此功能用apache的rewrite实现。
rewrite规则:
rewriterule ^/photos/([0-9]+)\.([0-2]+)\.([0-9]+)\.html /photoblog/SinglePhotoCtrl?imgid=$1&st=$2&sid=$3 [P,L]
参数说明:$1表示图片的Id,$2表示图片流来路(0表示用户图片流,1表示图集图片流,2表示群组图片流),$3表示图片流来的时候的id
二、配置squid服务器
我直接用的是配置。
三:squid缓存
然后我们会针对这个静态的url做squid缓存,从而达到减轻数据库压力的目的。例如访问这个
http://photo.bokee.com/photos/502455.2.5.html 链接,假如有1000个用户访问。以前是要调用1000次数据库,现在只用调用1次。其余的999次都访问的时缓存。这样大大的降低了数据库的压力。从而使得数据库服务器的性能大大的提高。同时也使得中间层数据库的压力降下来了。直接的效果,就是使得从前的数据库cpu从100%降到现在平均的70%。
备注:目前缓存的页面是12个小时,缺点是不能及时更新图片的浏览数。接下来,性能优化将针对图集。