Nginx 在动态子文件夹中部署静态文件

Nginx deploy static file in dynamic sub folder

我的网站根目录(/var/www/static.website.ext/public_html)组织如下:

images
|___ 61
     |___ 6105495099f49473.png
|___5f
     |___ 5fb969a00a4832d2.png
schema
|___ satic_file.png

如您所见,文件夹“61”和“5f”是根据图像名称动态生成的(加载静态文件时)。 (前两个字符)

我的目标如下:

https://static.website.ext/images/6105495099f49473.png  = display 6105495099f49473.png image (located in /images/61/61...)

我可以在 Nginx 中做什么? 在 Apache 中,只需使用 mod_rewrite,或者使用调度程序将 index.php 文件挂载到 /images/ 文件夹中。

但性能不会(我猜)像直接从 Nginx 分发

使用正则表达式 location 捕获构建文件路径所需的 URI 部分。有关详细信息,请参阅 this document

例如:

root /var/www/static.website.ext/public_html;

location ~ ^(/images)(/..)(.*)$ {
    try_files  =404;
}