如果通过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;
}
答案 0 :(得分:2)
try_files不支持外部重定向。只有内部重定向。 您需要使用内部位置。
您的位置不是基于正则表达式的位置。因此捕获无用。尝试:
location ~* ^/img/([[:digit:]]+)\.(gif|jpe?g|png)$ {
try_files $1.$2 /generate_image/$1.$2;
}
我假设generate_image
在同一台服务器上。