Nginx的try_files不工作的正则表达式
问题描述:
我在nginx的配置文件创建的位置:Nginx的try_files不工作的正则表达式
location ~* ^/resize/(.*)/(\d+)/(\d+)/(.*)\.(jpeg|jpg|png|gif)$ {
try_files /var/image-gallery/php/web/assert/$1/$4_$2_$3.$5 /resize.php?storage=$1&width=$2&height=$3&file=$4&ext=$5;
}
如果文件存在,我想nginx的归还。否则,我想运行一个脚本,最终应该将文件内容流式传输。
HTTP请求,例如:http://host:8000/resize/storage3/100/100/28f686ecb64bbb0c90d824a4be08a1e9.jpeg
文件位置:
$ file /var/image-gallery/php/web/assert/storage3/28f686ecb64bbb0c90d824a4be08a1e9_100_100.jpeg
/var/image-gallery/php/web/assert/storage3/28f686ecb64bbb0c90d824a4be08a1e9_100_100.jpeg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 100x100, frames 3
为什么nginx的不能看到磁盘上的文件?
答
解决! Nginx不使用绝对路径。
修复:
location ~* ^/resize/(.*)/(\d+)/(\d+)/(.*)\.(jpeg|jpg|png|gif)$ {
root /var/image-gallery/php/web/assert;
try_files /$1/$4_$2_$3.$5 /resize.php?storage=$1&width=$2&height=$3&file=$4&ext=$5;
}
你能否也向我们展示了nginx的日志? –
@IvanVelichko,看到我的回答:) – dimka3210