Есть ли какая-либо причина, реальная или теоретическая, что:
location ~* ^.+\.js$ {
access_log off;
log_not_found off;
expires max;
}
было бы предпочтительнее:
location ~* \.js$ {
access_log off;
log_not_found off;
expires max;
}
Я спрашиваю, потому что в большинстве случаев я вижу примеры Nginx, использующие конфигурацию второго блока. Но иногда я также вижу, что первый блок используется вместо второго. Фактически, многие примеры на nginx.com, похоже, используют конфигурацию первого блока вместо второго.
Насколько далеко я могу сказать, единственная реальная разница в том, что первый блок пропускает поиск новых строк (\ n) при сопоставлении местоположений, возможно делая его более эффективным.
Удобочитаемость, но производительность лучше.
Может ли кто-нибудь привести аргумент в пользу выбора одной конфигурации перед другой, поскольку они кажутся почти идентичными с точки зрения функций?
Первое регулярное выражение занимает немного больше времени, но на современных процессорах это время будет довольно тривиальным.
Но первое регулярное выражение будет не сопоставить файл с именем .js
. Второе регулярное выражение будет соответствовать файлу с именем .js
.