Nginx提供图像

时间:2012-03-07 23:38:57

标签: image 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;
}

还使用了此try_files

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

1 个答案:

答案 0 :(得分:2)

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

  2. 您的位置不是基于正则表达式的位置。因此捕获无用。尝试:

    location ~* ^/img/([[:digit:]]+)\.(gif|jpe?g|png)$ {
       try_files $1.$2 /generate_image/$1.$2;
    }
    
  3. 我假设generate_image在同一台服务器上。