2012-03-07 98 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