Назад | Перейти на главную страницу

Nginx - обслуживание статического контента из глубокой структуры каталогов

Мне нужно хранить довольно много изображений (скажем, 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;