我有一個Rails應用程序,它可以生成大量圖像;即帶有show動作的圖像控制器從SAN獲取圖像並提供服務。我有一個caches_page可以在自定義位置可靠地保存文件的副本; RAILS_ROOT +/public/cache。這些文件在那裏,看起來很好。配置nginx提供緩存圖像
我通過nginx提供的應用程序,它似乎工作正常,但對於我的生活我無法讓它發送這些緩存的圖像文件,而不是擊中rails的行動。我對nginx非常陌生,並且一直在研究它一段時間,但無論我嘗試什麼都行不通 - 我正在做一些根本錯誤的事情。
爲了澄清,我有一個這樣的URI:
/images/show/123.jpg
該文件可能存在的位置:
/cache/images/show/123.jpg
我怎樣才能讓nginx的服務該文件並沒有通過在要求?
這裏是什麼,我已經試過一個不完整的列表:
if (-f /cache$request_filename) {
rewrite (.*) /cache$1 break;
break;
}
if (-f /cache$uri.jpg) {
rewrite (.*) /cache$1.jpg break;
}
if (-f /cache/images/show/$request_filename) {
rewrite (.*) /cache/images/show/$1.jpg break;
}
任何想法?
更新:我回答了我自己的問題。正確的規則是:
if (-f $document_root/cache$request_uri) {
rewrite (.*) /cache$1 break;
}
http://serverfault.com/questions/262995/how-do-i-dry-up-this-nginx配置/ 263854#263854 http://serverfault.com/questions/263223/nginx-serve-htm-if-exists-instead-of-php/263395#263395 – 2011-05-05 11:39:04