Работа location с алиасом
Maxim Dounin
mdounin на mdounin.ru
Пн Окт 24 15:48:01 UTC 2022
Hello!
On Mon, Oct 24, 2022 at 09:46:51AM +0300, izorkin на gmail.com wrote:
> Вариант с использованием префиксной строки будет быстрее обрабатываться
> nginx-ом, по сравнение с использованием регулярных выражений? Не смотря
> на увеличение итогового объёма конфигурационного файла?
> ```
> root /var/www;
>
> location / {
> try_files $uri =404;
> }
>
> location /test/ {
> try_files $uri =404;
> alias /var/test/;
> }
>
> location /custom/ {
> try_files $uri =404;
> alias /var/test/;
> }
> ```
Основное тут не скорость, а простота поддержки. Скажем, если вы в
данный конфиг добавите что-нибудь вроде
location /test/images/ {
alias /var/test/images/
expires max;
}
то в случае префиксных строк всё будет работать так, как должно,
то есть для файлов в /test/images/ будут возвращаться
соответствующие заголовки Expires и Cache-Control.
А в случае регулярных выражений просто ничего не произойдёт, и
запросы продолжат обрабатываться в location'е, заданном
регулярным выражением. И чтобы это понять, придётся внимательно
прочитать весь конфиг.
Подробнее об этом и других случаях у Игоря в докладе,
"Масштабируемая конфигурация nginx":
https://youtu.be/jf3wIN-FwW4
https://highload.guide/blog/scalable-configuration-nginx.html
Скорость, впрочем, тут тоже будет больше. Кроме разве что совсем
вырожденных случаев, когда одним регулярным выражением заменяются
тысячи префиксных location'ов, и начинает сильно влиять объём
конфигурации в памяти.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru