JXWAFJXWAF
首页
JXWAF标准版
JXWAF专业版
JXWAF云WAF
WebTDS
GitHub
首页
JXWAF标准版
JXWAF专业版
JXWAF云WAF
WebTDS
GitHub
  • JXWAF云WAF文档

    • 产品介绍
    • 部署教程
    • 模型服务私有化部署
    • 操作指南(管理控制台)
    • API 调用
    • 用户控制台定制开发指南
    • 性能测试报告
    • 防护能力测试报告

部署教程

架构

JXWAF 云 WAF 由以下组件组成:

组件说明
管理控制台(jxwaf_admin_server)管理平台,提供子账号管理、全局防护、安全运营、系统配置等功能
节点(jxwaf_node)流量处理与实时攻击检测
用户控制台(jxwaf_user_console)业务部门自助管理平台,提供域名管理、防护配置、证书管理、CDN 功能等
日志服务(jxlog)日志采集与分析
┌──────────────┐     ┌──────────────┐
│  管理控制台    │◄───►│  用户控制台    │
└──────┬───────┘     └──────────────┘
       │
       │ 配置下发 / 日志上报
       │
       ▼
┌──────────────┐     ┌──────────────┐
│    节点       │────►│   日志服务     │
└──────────────┘     └──────────────┘

环境要求

项目要求
操作系统Debian 12.x / Ubuntu 20.04+
最低配置管理控制台 4 核 8G;每个节点 4 核 8G
依赖Docker、Docker Compose

一、管理控制台部署

1.1 系统部署

# 1. 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 2. 克隆仓库(也可通过 wget 下载源码包:wget https://github.com/jx-sec/jxwaf/archive/refs/heads/master.zip)
git clone --depth=1 https://github.com/jx-sec/jxwaf.git

# 3. 进入管理控制台目录并启动
cd jxwaf/Cloud/jxwaf_admin_server/
docker compose up -d

部署完成后访问 http://<服务器IP>:8000,首次访问需注册主账号。

用户注册

管理控制台默认仅支持单用户注册,注册后自动关闭注册入口。生产环境建议注册账号时开启 OTP 认证。

注册并登录后,进入 系统管理 → 基础配置 查看主账号 waf_auth,后续配置用户控制台、节点时需要使用。

1.2 Docker Compose 配置说明

管理控制台部署包含三个容器:

容器镜像说明
mysql_dbccr.ccs.tencentyun.com/jxwaf/mysql:8.0业务数据库
jxwaf_admin_serverccr.ccs.tencentyun.com/jxwaf/jxwaf_admin_server_cloud:6.2.1管理控制台
ssl_cert_serviceccr.ccs.tencentyun.com/jxwaf/ssl_cert_service:6.2.1泛域名证书自动签发/续期服务

1.3 核心环境变量

jxwaf_admin_server

环境变量默认值说明
ENABLE_HTTPSfalse是否启用 HTTPS
HTTP_PORT8000HTTP 监听端口
MYSQL_HOST / MYSQL_PORT / MYSQL_DATABASE / MYSQL_USER / MYSQL_PASSWORD—数据库连接配置
OPEN_REGISTfalse是否开放注册
ADMIN_API_ENABLEfalse是否启用 Admin API(/admin_api/),用于节点、证书服务等调用
ADMIN_API_WHITELISTagent.jxwaf.comAdmin API 调用方白名单(IP/域名,逗号分隔)
USER_API_ENABLEfalse是否启用 User API(/user/),用户控制台需要此功能,必须设为 "true"(出厂 compose 已默认开启)
USER_API_WHITELIST(空)User API IP 白名单,空表示不限制
JXWAF_MODEL_SERVER_HOSTmodel.jxwaf.comAI 语义分析模型服务地址
JXWAF_MODEL_SERVER_PORT39980AI 模型服务端口
JXWAF_MODEL_SERVER_SSLtrueAI 模型服务是否启用 SSL
WAF_UPDATE_CONF_DATA_SIZE100mWAF 配置更新缓存大小
CONF_DATA_SIZE100m会话数据缓存大小
MODEL_DATA_SIZE100mAI 模型数据缓存大小
RESOLVER_IPS公共 DNSDNS 解析器,空格分隔
RESOURCE_QUOTA_TEMPLATE内置 8 项资源配额模板(JSON),可自定义配额项
USAGE_STAT_RETENTION_DAYS30业务数据统计保留天数
TZAsia/Shanghai时区

ssl_cert_service

环境变量默认值说明
CONSOLE_API_URLhttp://127.0.0.1:8000管理控制台地址
POLL_INTERVAL60s任务轮询间隔
RENEWAL_CHECK_INTERVAL6h续期检查间隔
RENEWAL_DAYS30到期前多少天触发续期
ACME_DIRECTORY_URLhttps://acme-v02.api.letsencrypt.org/directoryACME 目录 URL
ACME_ACCOUNT_DIR/data/acme_accountsACME 账户存储目录
ACME_EMAIL_DOMAINjxwaf.comACME 注册邮箱域名
ACME_ACCOUNT_MODEsharedACME 账户模式(shared 共享账户)
ACME_SHARED_EMAILadmin@jxwaf.com共享 ACME 账户邮箱

注意

  • 生产环境务必设置强密码并启用 HTTPS
  • USER_API_ENABLE 必须设为 "true",否则用户控制台无法工作(出厂 compose 已默认开启)
  • 如需部门自助注册,需在管理控制台创建 网站接入配置,并将配置名提供给用户控制台部署方

1.4 日志收集服务部署

日志收集服务(jxlog)独立部署,用于安全运营中心(SOC)的报表与日志查询:

cd jxwaf/Cloud/jxlog/
docker compose up -d

部署完成后,在管理控制台 系统管理 → 日志传输配置 与 日志查询配置 中填写 jxlog 地址与连接信息。

1.5 系统升级

cd jxwaf/Cloud/jxwaf_admin_server/
git pull
docker compose down
docker compose up -d

1.6 卸载系统

cd jxwaf/Cloud/jxwaf_admin_server/
docker compose down
rm -rf /opt/jxwaf_data/mysql_cloud   # 可选:删除数据库文件

二、节点部署

2.1 系统部署

节点提供流量处理与实时攻击检测等功能。在每台接入节点服务器上执行:

# 1. 安装 Docker(如已安装跳过)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 2. 克隆仓库(也可通过 wget 下载源码包:wget https://github.com/jx-sec/jxwaf/archive/refs/heads/master.zip)
git clone --depth=1 https://github.com/jx-sec/jxwaf.git

# 3. 进入节点目录,修改配置后启动
cd jxwaf/Cloud/jxwaf_node/
vim docker-compose.yml
docker compose up -d

启动后在管理控制台 运营中心 → 节点状态 可查看节点是否上线。

2.2 Docker Compose 配置说明

节点部署包含两个容器:

容器镜像说明
jxwaf_baseccr.ccs.tencentyun.com/jxwaf/jxwaf_node_cloud:6.2.1流量节点
jxwaf_nft_nodeccr.ccs.tencentyun.com/jxwaf/jxwaf_nft_node:6.0网络封禁节点

2.3 核心环境变量

流量节点(jxwaf_base)

环境变量默认值说明
HTTP_PORT80HTTP 监听端口,多端口用逗号分隔,如 80,8080,8888
HTTPS_PORT443HTTPS 监听端口,多端口用逗号分隔,如 443,8443
JXWAF_SERVER—管理控制台地址(必填)
WAF_AUTH—节点认证密钥,与管理控制台 waf_auth 一致(必填)
JXWAF_INNER200m共享内存大小(限流计数、封禁缓存等)
RESOLVER_IPS公共 DNSDNS 解析器,空格分隔
CACHE_MAX_SIZE10g节点缓存磁盘上限
SSL_ATTACK_PROTECTfalse是否启用 SSL 攻击防护
TZAsia/Shanghai时区

网络封禁节点(jxwaf_nft_node)

环境变量默认值说明
WAF_SERVER_URL—管理控制台地址(必填)
WAF_AUTH—与流量节点一致(必填)
SYNC_INTERVAL3向管理控制台同步封禁规则的间隔(秒)

网络层封禁

网络封禁节点需 privileged: true 特权模式。仅当需要使用「网络封禁」执行动作时才需要部署。

2.4 节点验证

节点内置防护自测工具,可验证节点防护是否生效:

cd jxwaf/Cloud/jxwaf_node/waf_test/
python3 waf_poc_test.py -u http://<节点IP>    # 对目标站点发送 64 条攻击 POC 并统计拦截率

三、用户控制台部署

3.1 前置条件

  1. 已部署 管理控制台,并完成:
    • 创建 网站接入配置(记录配置名,见 操作指南(管理控制台))
    • 开启环境变量 USER_API_ENABLE=true
  2. 获取主账号 waf_auth(管理控制台 系统管理 → 基础配置 查看)

3.2 系统部署

# 1. 安装 Docker(如已安装跳过)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 2. 克隆仓库(也可通过 wget 下载源码包:wget https://github.com/jx-sec/jxwaf/archive/refs/heads/master.zip)
git clone --depth=1 https://github.com/jx-sec/jxwaf.git

# 3. 进入用户控制台目录,修改配置后启动
cd jxwaf/Cloud/jxwaf_cloud_user/
vim docker-compose.yml
docker compose up -d

部署完成后访问 http://<服务器IP>,业务部门即可注册账号并登录使用。

3.3 环境变量

环境变量必填说明
CLOUD_API_URL是管理控制台地址,如 http://<cloud_host>:8000
CLOUD_API_KEY是主账号 waf_auth(第一层鉴权 Token)
DEFAULT_WEBSITE_ACCESS_CONF是默认接入配置名,注册子账号时自动绑定,需与管理控制台创建的配置名一致
HTTP_PORT否监听端口,默认 80
MYSQL_HOST 等否可选:数据库连接
TZ否时区,默认 Asia/Shanghai

四、完整部署示例

单台服务器部署示例(最小规模):

服务器(4C8G+)
├── 管理控制台    :8000   (docker compose up -d)
├── 用户控制台    :80     (docker compose up -d)
├── 节点        :80/443 (docker compose up -d)
└── jxlog        (SOC 报表/日志查询需要)

生产环境建议:管理控制台与节点分离部署;节点可多台水平扩展,由 DNS/负载均衡将业务流量分发到各节点。

混合云部署示例

管理控制台
├── 管理控制台    :8000   (集中管理)
├── 用户控制台    :80     (部门自助)
└── 日志服务               (日志存储)

云平台 A(阿里云)
└── 节点 1-N   :80/443 (业务流量接入)

云平台 B(腾讯云)
└── 节点 1-N   :80/443 (业务流量接入)

IDC 机房
└── 节点 1-N   :80/443 (业务流量接入)

混合云部署要点:确保各节点能通过内网或公网访问管理控制台。

Prev
产品介绍
Next
模型服务私有化部署