在开发测试阶段时,平台在数据很小,或者在很随意的测试数据环境下没有什么感觉,但是随着数据量的增加,性能的问题就会出现了,我们在不断忍耐的同时,很容易到达一个临界点——不可忍受。

从原来的秒开,然后现在强制刷新需要5.84s+,

5s

经过浏览器缓存后,效果依旧很恶心:( ,维持在2+~3s之间,这可是首页啊,这样的速度应该被认为是不可忍受的,这样就需要优化了。

要把首页搞定到秒开,需要调试前后的 web server,但是从上午追踪的情况来看对server的优化已经远不能达到预期的效果,只可能从代码端去优化了,

在打开indexAction后,一切明朗了…… 最简单的办法就是分请求,利用多线程去加载,而不是一路向下,不过那么多的数据分层需要一段时间才能搞定,眼下最简单的就是增加首页缓存,然后效果斐然:)

2ms

如此这般,心满意足,达到了秒开的效果 。

然后设定了清理缓存的路径,这时候的问题来了,因为设定的缓存是永久不失效的,同时还要防止被别人嗅探到,不停的秀逗你造成雪崩,还有某些不按套路来的蜘蛛!!那么就只好加上权限了:

环境 CentOS 6.4x64bit,前端Nginx,后端Tomcat。最好的办法在Nginx上做文章,效果好,效率佳。

创建用户数据库 htpasswd -c  user.db   username

输入username的密码。

Nginx 配置路径 (片段)eg:

location ~ /admin{
auth_basic "Restricted";
auth_basic_user_file user.db;//完整的物理路径
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

然后在你访问domain/admin/* 这个路径的时候便会先到验证页面了。

pass