我有一個本地目錄(上傳)和S3桶設置。 當用戶上傳文件存儲在本地目錄的圖像:/uploads/member_id/image_name
30分鐘系統中的文件上傳到S3具有相同路徑後:s3.amazonaws.com/bucket/member_id/image_name;
nginx重寫 - 代理如果文件不存在
我就已經安裝此重寫規則我的nginx服務器,但它不工作。 這個規則應該檢查是否該文件是本地存在,如果沒有,打開代理S3 ..
不知道如何解決它?
location /uploads/
{
rewrite ^/uploads/(.*)/([A-Za-z0-9\._]*)$ /uploads/$1/$2?imgname=$2&member=$1;
try_files $uri @fallback;
}
location @fallback
{
resolver 8.8.8.8;
proxy_pass $scheme://s3.amazonaws.com/bucket/$arg_member/$arg_imgname;
proxy_set_header Host s3.amazonaws.com;
}
您是否設置了根定義,以便nginx知道在本地搜索文件的位置? –
是的,根被設置,如果我刪除位置/ uploads /我可以在本地看到文件。 – user1945821
嘗試將error_log指令添加到備用位置,並在此處放置詳細信息。從S3代理文件最重要的事情是* proxy_pass *和* resolver *,但您可以像這樣調整它:https://coderwall.com/p/rlguog – Anatoly