模型服务私有化部署
JXWAF 云 WAF 支持在本地部署 AI 安全模型服务。
部署步骤
1. 取消服务注释
编辑管理控制台部署包中的 docker-compose.yml,找到文件末尾的 jxwaf_model_update 服务块,取消全部注释(即删除每行开头的 #):
# ==================== AI 模型更新服务(可选,按需取消注释启用) ====================
jxwaf_model_update:
image: ccr.ccs.tencentyun.com/jxwaf/jxwaf_model_update:1.13
container_name: jxwaf_model_update
restart: unless-stopped
network_mode: host
# ... 完整配置见 docker-compose.yml
2. 修改授权码
将 AUTH_CODE 替换为有效的授权码:
environment:
AUTH_CODE: <你的授权码>
配置文件自带测试用授权码,过期时间 2036-12-31
3. 配置 AI 平台 API Key
在 PLATFORMS 配置中填入对应 AI 平台的 api_key,以 DeepSeek 为例:
PLATFORMS: |-
{
"deepseek": {
"api_key": "<你的 DeepSeek API Key>",
"api_url": "https://api.deepseek.com/chat/completions",
"model": "deepseek-v4-flash",
"temperature": 0.2,
"timeout": 300,
"max_retries": 1,
"thinking_type": "disabled",
"stream": false
}
}
4. 配置 WAF 引擎
在 WAF_ENGINES 配置中填入 WAF 引擎地址,模型服务会将请求同时发送给 AI 平台和 WAF 引擎进行分析:
WAF_ENGINES: |-
{
"safeline": {
"url": "https://waf-ce.demo.chaitin.cn:10084/hello.html",
"timeout": 5,
"match_type": "status_code",
"match_value": 403
}
}
| 字段 | 说明 |
|---|---|
url | WAF 引擎 POST 请求地址 |
timeout | 单次请求超时(秒) |
match_type | 匹配方式:status_code(状态码匹配)或 content_contains(内容包含) |
match_value | status_code 时为整数(如 403),content_contains 时为字符串(如 "blocked") |
5.(可选)启用 HTTPS
如需通过 HTTPS 访问模型服务,修改以下配置并挂载 SSL 证书:
ENABLE_TLS: "true"
volumes:
- ./ssl/server.crt:/opt/jxwaf_model_update/nginx/conf/server.crt:ro
- ./ssl/server.key:/opt/jxwaf_model_update/nginx/conf/server.key:ro
6. 启动服务
docker compose up -d
配置说明
| 配置项 | 默认值 | 说明 |
|---|---|---|
AUTH_CODE | 测试用授权码 | 授权码,过期时间 2036-12-31 |
PLATFORMS | — | AI 平台详细配置(JSON),支持 DeepSeek、MiniMax、百炼等 |
WAF_ENGINES | — | WAF 引擎配置(JSON),所有配置的引擎将并行运行 |
ANALYSIS_COUNT | 2 | 单平台对同一条记录连续分析 N 次,要求 N 次结果一致才采纳 |
ANALYSIS_CONSISTENCY_RETRIES | 2 | 结果不一致时的重试轮数 |
REVIEW_INTERVAL | 60 | 补偿扫描间隔(秒) |
REVIEW_BATCH_SIZE | 1000 | 每次补偿扫描最大行数 |
MAX_FAIL_COUNT | 3 | 单引擎最大失败次数,达到后该引擎被剔除 |
MAX_CONCURRENT_TASKS | 20 | 单引擎最大并发任务数 |
QUERY_RESULT_MODE | all | 查询结果返回模式:any(任一完成即返回)或 all(全部完成才返回) |
SYNC_INTERVAL | 3 | 数据同步间隔(秒) |
SCAN_INTERVAL | 2 | AI/WAF 分析扫描间隔(秒) |
STREAM_PORT | 39980 | 服务监听端口 |
ENABLE_TLS | false | 是否开启 HTTPS |
模型服务与管理控制台的对接
管理控制台默认连接官方模型服务,部署本地模型服务后需修改 jxwaf_admin_server 的配置:
jxwaf_admin_server:
environment:
JXWAF_MODEL_SERVER_HOST: 127.0.0.1 # 改为本地模型服务地址
JXWAF_MODEL_SERVER_PORT: 39980 # 模型服务监听端口
JXWAF_MODEL_SERVER_SSL: "false" # 本地默认未开启 TLS
修改后重启服务:
docker compose restart jxwaf_admin_server
