0
我的文件夾結構:nginx的後備如果重寫失敗
在/ var/WWW/puenktchenunda /公/ IMG /科目
在/ var/WWW/puenktchenunda /公/ IMG/subjects_min
科目包含即「原始」文件。 Subjects_min包含將定期創建的壓縮圖像。該URL呼叫將轉到主題:
/img/subjects/img1.png
應該發生什麼:
- 重寫subjects_min
- 如果/img/subjects_min/img1.png不存在,爲它服務
- 如果/img/subjects_min/img1.png不存在,服務形象從/img/subjects/img1.png
步驟1和2可以很好地工作。該工程與此位置塊:
location ~* ^.*\/img\/sujets\/.*.(jpg|png|jpeg|gif) {
root /var/www/puenktchenunda/public;
rewrite /img/sujets/(.*)$ /img/sujets_min/$1;
#try_files /img/sujets_min/$URI /img/sujet/$URI;
}
但我真的不知道如何完成其餘部分。有任何想法嗎?
更新
這是我目前的版本。這工作正常,除了sujets_big位置塊。最後有1美元的問題。整個塊表達式在$ 1之後添加,而不是括號中的表達式。
location ~ /img/sujets/(.*.png)$ {
root /var/www/puenktchenunda/public/;
try_files /img/sujets_min/$1 /img/sujets_big/$1;
}
location ~ /img/sujets_big/(.*.png)$ {
root /var/www/puenktchenunda/public/img/sujets/$1;
}
HM,它說:「nginx的:EMERG]未知的‘根’變量」 – rapsli
,當我用它與附加太多的問題的完整路徑替換$根,包括整個表達的位置。 – rapsli
@rapsli嘗試變量而不是「$ 1」。用'$ document_root'編輯。 – Deadooshka