nginx转发

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

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

修改配置:

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

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

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

使用expires来设置文件在nginx缓存时间,nginx会在根据url缓存中查找是否有对应文件,文件是否过期。如果在修改配置之前访问过资源,需要清理一下缓存。

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

nginx location的四种类别:

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

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是放在服务器中,本地不存在。可通过添加匹配规则。

 

转载于:https://my.oschina.net/u/2417992/blog/3021860

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值