gixy 可嵌入 ci/cd 实现 nginx 配置自动化安全扫描,支持静态分析 ssrf、路径遍历等风险,兼容 github actions、jenkins 等流程,并需人工复核结果。

可以通过将 Gixy 工具嵌入 CI/CD 流程,实现 Nginx 配置文件的自动化安全扫描。它不依赖运行环境,仅解析配置语法与语义,就能在代码合并前识别 SSRF、路径遍历、HTTP 拆分等真实风险。
用 Gixy 做静态扫描
Gixy 是专为 Nginx 设计的轻量级静态分析工具,安装后即可直接扫描:
- 执行
pip install gixy(推荐 Python 3.6+) - 扫描单个文件:
gixy /etc/nginx/conf.d/app.conf - 支持
include递归解析,无需手动展开引用文件 - 输出 JSON 格式便于后续处理:
gixy --format json /path/to/nginx.conf > report.json
接入 GitHub Actions 自动化
在项目中添加 .github/workflows/lint.yml,让每次推送或 PR 都自动检查:
- 使用官方 Docker 镜像:
docker://yandex/gixy:latest - 指定待扫描的主配置路径,如
/github/workspace/nginx.conf - 可设置失败时阻断流程,确保带高危漏洞的配置无法合入
- 示例步骤:
- name: Lint configuration using Gixy<br> uses: docker://yandex/gixy:latest<br> with:<br> args: /github/workspace/nginx.conf
结合 Jenkins 或本地流水线
适用于已有 Jenkins 环境的团队:
- 在构建阶段添加 Shell 步骤,调用
gixy并判断退出码 - 启用插件控制,例如只开启 SSRF 和 Host 欺骗检测:
gixy --enable-plugin ssrf,host_spoofing - 部分插件支持自定义参数,比如调整内网段判定范围:
--ssrf-internal-networks 10.0.0.0/8,192.168.0.0/16 - 配合
--format checkstyle输出,可对接 SonarQube 或 IDE 插件做可视化标记
注意结果解读与上下文判断
Gixy 的报告是风险线索,不是最终结论,需人工复核:
- 检测到
$uri参与alias路径拼接,要确认该 location 是否加了internal或限制了请求方法 - 标记
add_header重复定义,需看父子块作用域和实际生效逻辑,有时是故意覆盖 - 建议将 Gixy 扫描作为准入卡点之一,而非唯一依据,仍需配合人工审查与运行时验证











