Nginx Cache中$request_filename(轉)


對於Nginx的$request_filename變量指的就是請求的資源路徑。在原先 OpenCDN節點端配置里面是這樣的。

location ~ .*\.(png|html|htm|ico|jpg|jpeg|bmp|gif|js|css)$ {
        ## 忽略瀏覽器的緩存 proxy_ignore_headers Cache-Control; proxy_ignore_headers Expires; proxy_cache cache_one; proxy_cache_valid 200 304 1h; proxy_cache_key $host$uri$is_args$args; expires 1h; ## 此處為host鎖定,可定制有無 proxy_set_header Host $host; add_header OpenCDN-Cache "$upstream_cache_status"; if (!-f $request_filename) { proxy_pass http://ocdn_www.firefoxbug.net; break; } }

對於!-f $request_filename這一段配置,主要意思就是如果location匹配了,發現請求的文件不存在,就回滾源站。那么怎么判定文件是否存在呢?Nginx去自定義的root路徑下去找,如果找不到就去默認的root路徑,這樣找不到才回滾源站。 
但是對於CDN的Cache配置這樣就不對了,因為Nginx看到request_filename,不可能去Cache下面去找吧,Cache下面的文件名啥的都是hash的字符,文件里面的KEY才是文件名,不切實際。我也做過測試,上面和下面的都滾回源站,沒什么區別。

#       if (!-f $request_filename) { proxy_pass http://ocdn_www.firefoxbug.net; # break; # }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM