从目前来看,您认为12306需要着重改善哪些方面?如果让您来设计,您会如何做?
首先是服务器时间错误问题,数据说话
后续测试发现真正的问题是CDN加速配置以及同步周期有问题,12306想通过CDN来做保障,可谁来保障CDN呢?
测试时间:2013/02/07 上午
测试网址:http://www.12306.cn/mormhweb/
请求数量简单统计
总计 HTML CSS JS XHR PIC FLASH
请求数 67 1 2 6 1 55 2
响应KB 622 26.3 16 92.4 2.2 408.6 76.6
缓存KB 592.7 26.3 16 92.4 0 381.5 76.6
说明:第一次访问 images/tab.png 加载了2次,缓存为第2次加载的统计
静态响应速度还是很快的,不做对比记录
HTTP 响应头信息
* 第一次
HTTP/1.1 200 OK
Date: Wed, 06 Feb 2013 11:19:56 GMT
Content-Length: 11322
Last-Modified: Mon, 10 Sep 2012 08:36:50 GMT
Accept-Ranges: bytes
Age: 1
X-Cache: HIT from cache.51cdn.com
X-Via: 1.1 hnxc9:8361 (Cdn Cache Server V2.0)
Connection: keep-alive
Cache-Control: max-age=36000
------------缓存-------------
Data Size11322
Devicedisk
ExpiresThu Feb 07 2013 09:54:49 GMT+0800
Fetch Count2
Last FetchedThu Feb 07 2013 09:54:50 GMT+0800
Last ModifiedThu Feb 07 2013 09:54:50 GMT+0800
-----------------------------
* 再次
HTTP/1.0 304 Not Modified
Date: Wed, 06 Feb 2013 11:19:56 GMT
Last-Modified: Mon, 10 Sep 2012 08:36:50 GMT
Age: 1
X-Cache: HIT from cache.51cdn.com
X-Via: 1.0 hnxc9:8361 (Cdn Cache Server V2.0)
Connection: keep-alive
Cache-Control: max-age=36000
------------缓存-------------
Data Size11322
Devicedisk
ExpiresThu Feb 07 2013 09:55:33 GMT+0800
Fetch Count4
Last FetchedThu Feb 07 2013 09:55:33 GMT+0800
Last ModifiedThu Feb 07 2013 09:55:33 GMT+0800
------------------------------
* 再次
HTTP/1.0 304 Not Modified
Date: Wed, 06 Feb 2013 11:19:56 GMT
Last-Modified: Mon, 10 Sep 2012 08:36:50 GMT
Age: 1
X-Cache: HIT from cache.51cdn.com
X-Via: 1.0 hnxc9:8361 (Cdn Cache Server V2.0)
Connection: keep-alive
Cache-Control: max-age=36000
------------缓存-------------
Data Size11322
Devicedisk
ExpiresThu Feb 07 2013 09:57:21 GMT+0800
Fetch Count6
Last FetchedThu Feb 07 2013 09:57:21 GMT+0800
Last ModifiedThu Feb 07 2013 09:57:21 GMT+0800
------------------------------
问题:服务器时间不对,比GMT时间小将近13个小时,且几次刷新时间是不变的
定格在 Date: Wed, 06 Feb 2013 11:19:56 GMT,造成浏览器缓存很快过期
刚刚测试发现
问题:服务器时间不对,比GMT时间小将近4个小时,且几次刷新时间是不变的
定格在 Thu, 07 Feb 2013 01:38:04 GMT,造成浏览器缓存很快过期
我实在不明白为什么服务器时间会定格,max-age的失效,会造成浏览器缓存彻底失效。
造成CDN加速资源的浪费,因为不能减少客户端请求数量。
一般应用这也许不会有大问题。但是回家的人理论上是有13亿的。
我立刻明白了正是CDN加速产生的问题,CDN加速把HEAD头照搬了,而且看来更新周期控制的也有问题。
至少在我检测的时候发现了过期未同步问题,如果这个时间控制的不好,那CDN加速就是完全失败的。
我如何做
把服务器时间搞对,可以使用网络授时同步,很简单的配置,而且免费
就目前来说修补CDN加速配置。呵呵,这个要服务商配合了。
如果是我来设计:我根本就不用CDN加速,原因很简单,这是个特定场景需求的应用,
那些静态文件可以预计很长时间内根本不需要更新,所以静态文件max-age设置足够大,比如30天就行了。
如果遇到更新,那更换地址就OK了。
我猜测CDN加速也花大钱了吧,这笔钱剩下来用到动态处理服务器上吧。
动态部分还的动态处理,那必须是时时的。什么加速都没用。不可避免的压力在这里。不过那是另外一个问题了。