nginx转发

工做中遇到app和h5混合开发,可是在开发过程当中有时候不用开发环境,h5若是修改后再打补丁上传到测试模拟等服务器,耗费时间,影响开发效率。因此在本地使用nginx启动一个web服务,将h5中的请求转发到对应环境。css

h5修改频繁,静态资源会有缓存问题,获取到的不是最新的。因此在网上百度了下。解决以下:html

修改配置:nginx

location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
        {
        root D:/git/Bus365H5; 
        expires      1s;
        }git

 location ~ .*\.(?:js|css)$
        {
            root D:/git/Bus365H5; 
            expires      1s;
        }web

  location ~ .*\.(?:htm|html)$
        {
            root D:/git/Bus365H5; 
            add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
        }缓存

使用expires来设置文件在nginx缓存时间,nginx会在根据url缓存中查找是否有对应文件,文件是否过时。若是在修改配置以前访问过资源,须要清理一下缓存。服务器

有些资源不是在本地,是放在服务器中,可注意匹配规则:app

nginx location的四种类别:

【=】模式: location = path,此种模式优先级最高(但要全路径匹配) 
【^~】模式:location ^~ path,此种模式优先级第二高于正则; 
【~ or ~*】模式:location ~ path,正则模式,优先级第三,【~】正则匹配区分大小写,【~*】正则匹配不区分大小写; 
【path】模式: location path,中间什么都不加,直接跟路径表达式; svg

location ^~ /wwwtm/public/www/js/tingyun.js {
            #rewrite  ^.+mrawm/?(.*)$ /$1 break;
            #include  uwsgi_params;
            proxy_pass   https://wwwt.bus365.cn/public/www/js/tingyun.js;
       }测试

如tingyun.js是放在服务器中,本地不存在。可经过添加匹配规则。

相关文章
相关标签/搜索