我有3個不同的存儲區域:「化身」,「文章」,「趨勢」,我存儲我的圖像。Nginx:從不同的根和位置發送JPG圖像
我想將URL「/trends/123.jpg」鏈接到趨勢文件夾,「/avatars/23.jpg」鏈接到頭像等等。
配置1:
server
{
listen 8089;
server_name localhost;
root /var/www;
location /trends/
{
alias /var/storage/hottrend/;
}
location ~* ^.+\.(jpeg|gif|png|jpg)
{
add_header Cache-control "public";
access_log off;
expires 90d;
}
}
配置1: 「GET /trends/123.jpg」 永遠比不上/趨勢/位置,爲什麼呢?
配置2:
server
{
listen 8089;
server_name localhost;
root /var/www;
location ~ ^/trends/(.*)\.jpg$
{
rewrite ^/trends/(.*)$ /$1 break;
root /var/storage/hottrend;
}
location ~* ^.+\.(jpeg|gif|png|jpg)
{
add_header Cache-control "public";
access_log off;
expires 90d;
}
}
配置2:與緩存的東西最後一個規則不匹配。什麼是從不同的位置/根服務器JPG文件的最佳途徑?
有多種原因可能導致位置不匹配。你能列出其他位置(他們的內容不需要)嗎? –
由於nginx遵循符號鏈接,您還可以使用諸如'trends - >/var/storage/trends'這樣的符號鏈接來獲得期望的效果。 –
@KevinA.Naudé我不想使用符號鏈接,因爲所有代碼都必須運行在不同的「環境」上。(儘管這是最簡單的解決方案;-( –