我必须存储相当多的图像(假设 1M)以供 Nginx 提供服务,因此为了避免一个文件夹中有太多文件,我计划将它们分成与文件名相关的文件夹,例如:
/images/1/5/3/153.png
(我知道有方法可以实现更均匀的分布,但我认为这足以满足我们的需要)
但是,我希望可以通过没有目录结构的 URL 访问这些内容,即:
/images/153.png
这是否可以通过 Nginx 中的 URL 重写来实现?
答案1
啊,在文档中找到了(之前没看到)。看起来很简单,HttpRewrite模块。
注意:对于花括号( { 和 } ),由于它们既用于正则表达式也用于块控制,为了避免冲突,带有花括号的正则表达式必须用双引号(或单引号)括起来。例如,要重写 URL,如下所示:
/photos/123456 至:
/path/to/photos/12/1234/123456.png 使用以下内容(请注意正则表达式周围的引号):
重写“/photos/([0-9] {2})([0-9] {2})([0-9] {2})”/path/to/photos/$1/$1$2/$1$2$3.png;