用于caching图像的Nginx正则expression式规则会覆盖根位置块

我的nginx设置包含以下位置规则:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ { expires 7d; } location /data/ { root /mnt/data; } 

问题是,当我尝试访问/ data /文件夹中的以下文件(jpg | jpeg | png | gif | ico | css | js | pdf)时,出现404 Not Found错误,导致第一个位置规则覆盖第二。 我试图做这样的事情:

  location ~* /data/.*\.jpg$ { root /mnt/data; expires 7d; } 

但是这似乎并不奏效。 在这种情况下,你能帮我解答一下我的解决scheme吗?

解决scheme是:

#1规则重复

 location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ { expires 7d; } location /data/ { root /mnt/data; location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ { expires 7d; } } 

#2符号链接

你可以创build一个符号链接: $document_root/data -> /mnt/data