网站访问速度太慢的一般解决方法
网站访问慢直接关系到网站访问量,用户体验度的问题。今天我就来给大家介绍几种通用的解决网站太慢的方法。
1.通过浏览器插件找出网页请求过程中的加载时间问题
这里推荐使用火狐的Firefbug或者谷歌浏览器的开发人员工具(F12),这里以firebug为例,装好firebug后,在打开firebug的情况下,刷新你的网站页面,如图:
通过firebug插件中的网络选项卡,我可以知道网页在加载过程中,所有的请求的访问速度情况,如上面那条,通过对具体请求的详情查看,我知道了这个域名光解析竟然用了2秒钟,而等待响应竟然出有近2分钟。然后接收数据时间也不少。然后通过firebug还可以找出哪个请求链接用的时间最长。
2.通过浏览器插件,找出服务器的不足
我们将展开比较慢的请求,看详细的信息头:
URL:http://lszm.zmke.com/wp-includes/css/admin-bar.css?ver=20111209
Cache-Control max-age=0
通过头信息,发现,CSS文件做为静态资源,它的Cache-Control的最大缓存量竟然是0,也就是说它禁止了缓存,那么对于每个用户的访问来说,每次可能就都需要从我的服务器上请求到资源,那显示服务器压力也大,用户访问也慢,而我去看下百度的响应头信息
URL:http://upload.chinaz.com/2011/1221/1324434300126.gif
Cache-Control max-age=315360000
Expires Thu,16 Dec 2021 06:53:18 GMT
Accept-Encoding gzip, deflate
百的图片在浏览器上的缓存过期时间是10年,到2021年,而页面也是经过gzip压缩过的,缓存最大值也是非常大。
而百度的访问过程也正说明了这一点,通过这样的优化,从服务器上加载的数据量不再是全部,总量86KB,其中33KB来自浏览器缓存
3.解决问题
通过上面的方法得到的结论是,对于这个网站,主要要解决的问题是:
a.解析的问题
b.服务器的优化
c.网络的问题
解析问题其实很好办,国内有很多免费的DNS提供商,如果我们存在这样的问题,直接换个DNS提供商就行了。这里主要是来讲下缓存时间的设置,以NGINX服务器为例。
打开nginx的配置文件,
location / {
root /var/www;
index index.html index.htm index.php;
}
location ~* ^.+.(jpg|jpeg|swf|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
root /var/www;
access_log off;
expires 350d;
}
在location中,我们可以对静态文件做专门的缓存处理,添加expires项,即过期时间,在这里我设置的是350天,也就是说如果用户没有清空自己的浏览器缓存,那么在访问过一次之后,在后面的二次访问时,都会直接从浏览器缓存中拿到图片,而不再经过我的服务器,这样显然,对于图片、静态资源很多的网站,这样提高速度的效果很明显。
13 http {
14 include /etc/nginx/mime.types;
15
16 access_log /dev/null;
17
18 sendfile on;
19 tcp_nopush on;
20
21 #keepalive_timeout 0;
22 keepalive_timeout 0;
23 tcp_nodelay on;
24 client_max_body_size 160m;
25 gzip on;
26 gzip_disable "MSIE [1-6].(?!.*SV1)";
在http区域中,我们设置gzip为on,在后面我还做了一些正则参数,即IE1-6是不压缩的,因为IE1-6对压缩支持不是很好。
做好这二项后,然后重启下nignx服务器,就开始生效了。
当然有的同学的网站可能自己还接触不到服务器这一层,如虚拟主机用户等,在这里,我介绍大家使用加速乐(www.jiasule.com)的免费CDN服务,加入后,CDN的各节点就会将上述的问题妥善解决,包括域名解析、电信网通的互通问题等。看下效果:
最后:当然,加速并不是万能的,选择一款好的服务器是最根本的,如果上面的方法还不能解决问题,那就得考虑从硬件上提升了。