正则 location 可替换为精确匹配¶
Gixy Check ID: regex_exact_match
当正则 location 匹配单个字面路径(使用 ^ 和 $ 锚定,无特殊正则字符)时,可以将其替换为精确匹配 location (=) 以获得更好的性能。
NGINX 优先处理精确匹配 location,完全跳过正则引擎,因此速度明显更快。
错误示例:
location ~ ^/api/health$ {
return 200;
}
这里使用正则引擎来匹配实际上是固定字符串的内容。
正确示例:
location = /api/health {
return 200;
}
精确匹配 location 无需正则开销即可达到相同效果。
不适用的场景¶
此检查仅针对区分大小写的正则 location (~)。不区分大小写的正则 location (~*) 不会被标记,因为 = 修饰符始终区分大小写,转换会改变匹配行为。
包含任何正则特性(字符类、量词、分组、选择分支)的模式也不会被标记。
加固 NGINX,使用维护的 RPM
使用 GetPageSpeed 提供的 NGINX Extras 在 RHEL/CentOS/Alma/Rocky 上获取持续更新的 NGINX 与模块。 了解更多.