2012-03-07 51 views
1

試圖通過Nginx重定向到腳本來生成圖片,但在解決這個簡單問題時會遇到問題。 寫下了配置(嘗試不同的變體,這是最後一個),但它仍然不會工作。Nginx正在處理圖片

location /img/(\d+)\.(jpg|png|gif)$ { 
     root /path/to/img_dir; 
     expires max; 
     add_header Pragma public; 
     add_header Cache-Control "public"; 
     try_files $1.$2 http://site.com/generate_img/$1.$2; 
} 

也用這種代碼insted的的try_files

if (!-f $document_root/$1.$2) { 
    rewrite^http://site.com/generate_img/$1.$2; 
} 

回答

2
  1. try_files不支持外部重定向。只有內部重定向。 您需要使用內部位置。

  2. 您的位置不是基於正則表達式的位置。所以捕獲是無用的。嘗試:

    location ~* ^/img/([[:digit:]]+)\.(gif|jpe?g|png)$ { 
        try_files $1.$2 /generate_image/$1.$2; 
    } 
    

我假設generate_image是在同一臺服務器上。

+0

我仍然收到404頁面。試圖設置重定向到簡單的HTML頁面,但沒有改變。也許它不是關於文檔根路徑? – zona 2012-03-08 10:35:52

+0

位置〜* ^/image_dir /([[:digit:]] +)\。(jpe?g | png | gif)$ { \t root/path/to/domain/dir; \t try_files /image_dir/$1.$2 /test.html; }' 試過這個配置 – zona 2012-03-08 10:41:07