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是放在服務器中,本地不存在。可經過添加匹配規則。

相關文章
相關標籤/搜索