是否存在任何实际或理论上的原因:
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)的搜索,可能使其更加高效。
可读性很好,但性能更好。
鉴于它们在功能方面似乎几乎相同,有人可以争论选择其中一种配置而不是另一种配置吗?
答案1
第一个正则表达式的执行时间稍微长一些,但在现代 CPU 上,这个时间相当短。
但是,第一个正则表达式将不是匹配名为 的文件.js
。第二个正则表达式将匹配名为 的文件.js
。