所以我感動我的網站遠離Apache和Nginx的上,和我有這個情況麻煩:Nginx的代理服務器上的文件本地磁盤或S3
用戶上傳的照片。這張照片被調整大小,然後複製到S3。如果磁盤上有合適的空間(或文件無法傳輸到S3),則保留本地版本。
我想請求這些圖像(如http://www.mysite.com/p/1_1.jpg)先查看p /目錄。如果沒有本地文件存在,我想代理請求到S3並呈現圖像(但不重定向)。
在Apache中,我這樣做,像這樣:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([0-9]+_[0-9]+\.jpg)$ http://my_bucket.s3.amazonaws.com/$1 [P,L]
我試圖複製在Nginx的這種行爲是這樣的:
location /p/ {
if (-e $request_filename) {
break;
}
proxy_pass http://my_bucket.s3.amazonaws.com/;
}
什麼情況是,每個請求試圖打亞馬遜S3,即使該文件存在於磁盤上(如果它在Amazon上不存在,我也會收到錯誤。)如果我刪除了proxy_pass行,那麼請求磁盤上的文件DO工作。
有關如何解決此問題的任何想法?
你能分享virual.conf文件嗎? – Thoman 2013-05-30 19:24:26