location /image_mini {
# try_files /static_images/$2.jpg;
rewrite ^/image_mini/([^.]+)-00([0-9]+)\.jpg$ /image.php?a=$2 last;
}
Я использую это правило перезаписи для отображения изображений на моем веб-сайте. Например, если я хочу отобразить идентификатор изображения # 123456789, я бы использовал https://www.example.com/image_mini/some_cool_seo_keywords-00123456789.jpg
Затем image.php проверит, находится ли /static_images/00123456789.jpg в локальном кеше, в противном случае он создаст файл.
Я предполагаю, что я бы получил гораздо лучшую производительность, если бы nginx мог искать локальный статический файл перед откатом на image.php
Я попытался сделать это с помощью try_files, но я не уверен, как извлечь идентификатор изображения из URL-адреса, и я застрял здесь :( Любая помощь будет оценена
Вы можете использовать свое регулярное выражение в location
заявление. Например:
location ~* ^/image_mini/[^.]+-00([0-9]+)\.jpg$ {
try_files /static_images/$1.jpg /image.php?a=$1;
}
Обратите внимание, что оценка регулярного выражения location
выписки заказываются. Видеть этот документ для большего. Также, этот документ о правильном синтаксисе для try_files
.