51Testing软件测试论坛

标题: nginx proxy_cache与Yslow查看 [打印本页]

作者: 飞儿乐队    时间: 2018-5-11 15:00
标题: nginx proxy_cache与Yslow查看
对于网站的静态文件 如css  js或者静态图片这些不会经常更新的数据我们通常缓存在客户端  每次当客户端访问
的时候从客户端下载文件 减少了与服务器的交互  加快用户的访问速度 , 下面介绍nginx的缓存机制proxy_cache

先在火狐浏览器安装firebug  和Yslow插件  打开firebug和要访问的页面  Yslow  runtest


[attach]115358[/attach]

我们看这些静态文件expires的状态都是no expires没有缓存的 我们去修改nginx的配置文件  使其缓存到客户端

首先添加缓存的临时文件   这个指令配置缓存数据的存放路径  只能放在http块中

proxy_cache_path /usr/local/wcloud_ngx/cache/static levels=1 keys_zone=static:10m;  #keys_zone是给路径
取的别名  在配置文件中使用

然后去配置反向代理的文件添加相关指令

  1. server {

  2.     listen    80;

  3.    server_name www.*****.com;    #域名

  4.    proxy_buffering on;                 #开启缓冲,proxy_cache是依赖于缓冲的

  5.    proxy_buffers 8 8k;                 #缓冲的大小

  6.    proxy_buffer_size 8k;            

  7.    proxy_busy_buffers_size 16k;

  8.     proxy_temp_path /usr/local/wcloud_ngx/buffer_temp;   #缓冲路径  存放代理服务器大体积响应数据

  9.     proxy_temp_file_write_size 16k;

  10.    gzip on;

  11.   #gzip_types text/plain text/html application/x-javascript text/css application/xml;

  12.    gzip_vary on;

  13.    location / {

  14.         proxy_cache static;              #存放缓存索引区域名称

  15.         proxy_cache_key $scheme$proxy_host$uri$is_args$args;   #缓存建立索引关键字 默认

  16.         expires 1d;                          #客户端缓存时间  1天

  17.         proxy_set_header Host $http_host;

  18.         proxy_set_header X-Real-IP $remote_addr;

  19.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  20.         proxy_pass http://127.0.0.1:3000;     #反向代理

  21. }

  22. }
复制代码

配置完成之后  -t检测配置文件的正确性  然后重启nginx服务

然后再次访问网站  使用Yslow查看


[attach]115359[/attach]



我们发现都有了缓存时间  然后可以使用firebug的网络比较一下前后的访问速度  当然Yslow还提供了一些关于静
态文件的优化建议

当然nginx还有很多的缓存方式  如squid ncache(新浪)

当然还有要注意的就是如果你的网站里面有验证码,虽然从后台取出的是base64位的数据展现在前台也是静态
图片  也会被缓存下来  第二次刷新之后验证码图片是不回变的








欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2