Мне нужно хранить довольно много изображений (скажем, 1M) для обслуживания из Nginx, поэтому, чтобы избежать слишком большого количества файлов в одной папке, я планирую разбить их на папки с именами, связанными с именем файла, например:
/images/1/5/3/153.png
(Я понимаю, что есть способы добиться более равномерного распределения, но думаю, что этого будет достаточно для наших нужд)
Однако я бы хотел, чтобы они были доступны по URL-адресу без структуры каталогов, то есть:
/images/153.png
Возможно ли это сделать в Nginx, например, с помощью Перезапись URL?
Ах, нашел в документации (раньше не видел). Похоже, что с HttpRewriteModule.
Примечание. Для фигурных скобок ({и}), поскольку они используются как в регулярных выражениях, так и для управления блоками, во избежание конфликтов регулярные выражения с фигурными скобками следует заключать в двойные кавычки (или одинарные кавычки). Например, чтобы переписать URL-адреса, например:
/ photos / 123456 кому:
/path/to/photos/12/1234/123456.png используйте следующее (обратите внимание на кавычки, содержащие регулярное выражение):
rewrite "/ photos / ([0-9] {2}) ([0-9] {2}) ([0-9] {2})" / path / to / photos / $ 1 / $ 1 $ 2 / $ 1 $ 2 $ 3.png;