1.
整体部署架构与前提说明
1) 部署目标:将域名 www.example.com 接入腾讯云 WAF,实现 HTTPS 加密、HTTP->HTTPS 强制跳转、WAF 策略拦截与源站回源安全。
2) 架构关系:DNS -> 腾讯云 WAF(CNAME 或 A)-> CDN(可选)-> 源站 CVM/VPS。
3) 使用环境:源站为腾讯云 CVM,操作系统 Ubuntu 20.04,Nginx 1.18;WAF 使用反向代理(透明/回源)模式。
4) 高可用与抗DDoS:结合腾讯云 Anti-DDoS 基础防护与 CDN,设置速率与连接数阈值;示例阈值为每 IP 200 qps,单实例并发连接10000。
5) 安全合规:证书可使用腾讯云 SSL 或 Let’s Encrypt,证书 ID 示例 cert-20250401,证书到期自动更新周期示例 60 天提醒。
2.
DNS 配置细则(从解析到生效)
1) 域名示例:www.example.com,DNS 服务采用腾讯云 DNSPod(或云解析)。
2) 解析记录:将 www 记录设置为 CNAME 指向 WAF 提供的域名 waf-xxxx.tencentwaf.com,TTL 推荐 600 秒。
3) 若使用裸域(@),可使用 A 记录指向 WAF 的公网 IP(示例 203.0.113.50),并配置权重与监控。
4) DNS 生效检查:使用 dig +short www.example.com 获取返回 CNAME -> waf-xxxx.tencentwaf.com;示例:dig 返回 waf-xxx.tencentwaf.com。
5) DNS 切换回滚策略:记录当前 TTL 与旧解析值,切换后 30 分钟内观察流量与错误率,必要时回滚到旧 IP/记录。
3.
腾讯云 WAF 实例创建与策略配置
1) 实例创建:在腾讯云控制台选择 WAF 实例,绑定域名 www.example.com,选择防护模式(推荐:自有回源 + SSL 转发)。
2) 回源配置:源站 IP/域名填写 203.0.113.45:443,回源协议 HTTPS,开启主机头保留为 www.example.com,健康检查间隔 5s,超时 2s。
3) WAF 策略示例:开启常规规则集、CC 防护(阈值 200 qps/单 IP)、黑白名单、Bot 管理、跨站 XSS/SQL 注入拦截。
4) 日志与告警:开启访问日志、阻断日志到 COS 或 CLB 日志池;设置阈值告警(如 5 分钟内阻断请求数 >1000 时告警)。
5) WAF 模式调整:建议先用“观察/监测”模式 24 小时验证无误后切换为“阻断”模式,避免误杀。
4.
证书申请与上链(HTTPS)流程
1) 证书选择:支持腾讯云免费证书与第三方证书(Let’s Encrypt)。示例使用腾讯云免费 DV 证书,证书 ID:cert-20250401。
2) 证书绑定:在 WAF 控制台的域名 HTTPS 配置中选择“自有证书”或“云端证书”,填写私钥与公钥或选择已购买证书。
3) HTTPS 强制:在 WAF 或 Nginx 上配置 80 端口重定向至 443,WAF 可配置“HTTP 强制跳转”。
4) 自动续期:若使用 Let’s Encrypt,配合 acme.sh 在源站或证书管理处设定自动续期脚本并定期同步到 WAF(示例:cron 每 60 天检查)。
5) 验证方式:DNS-01(在 DNS 添加 TXT)或 HTTP-01(在源站响应 /.well-known/acme-challenge)。WAF 转发规则需允许验证流量直达验证端点。
5.
源站服务器与 Nginx 配置示例(含表格演示)
1) 源站配置示例:腾讯云 CVM 规格 2 vCPU / 4 GB RAM / 50 GB SSD,私有网络内网 IP 10.0.0.12,公网 IP 203.0.113.45。
2) Nginx 核心配置(示例片段):
server { listen 80; server_name www.example.com; return 301 https://$host$request_uri; }
server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/ssl/certs/fullchain.pem; ssl_certificate_key /etc/ssl/private/privkey.pem; location / { proxy_pass https://127.0.0.1:8443; proxy_set_header Host $host; } }
3) 健康检查端点:/health 返回 200,WAF 健康检查设置为每 5s 检查一次。
4) 性能调整:worker_processes 4,worker_connections 10240,keepalive_timeout 65。
5) 服务器配置表(示例):
| 项 | 示例值 |
| 实例规格 | 2 vCPU / 4 GB |
| 公网 IP | 203.0.113.45 |
| 操作系统 | Ubuntu 20.04 |
| Web 服务 | Nginx 1.18 |
| 证书 ID | cert-20250401 |
6.
与 CDN、Anti-DDoS 的联动与调优
1) CDN 与 WAF 的放置顺序:推荐 CDN 在最外层(做静态缓存与流量吸收),WAF 放在回源前或 CDN 与 WAF 联合防护(视业务与产品支持)。
2) DDoS 防护策略:Anti-DDoS 设置清洗阈值 5000 pps 或 1 Gbps(根据业务峰值调整),并开启全地域清洗。
3) CC 攻击应对:在 WAF 开启速率限制(示例:单 IP 200 qps,超过触发 403 或 JS 验证),并结合 CDN 的访问频次限制。
4) 缓存策略:静态资源设置较长 TTL(1 天或更长),动态接口设置 no-store,并在 WAF 中避免缓存敏感路径。
5) 日志关联分析:将 WAF 日志、CDN 日志与 Anti-DDoS 日志汇聚至日志平台(如 CLS),用于溯源与自动化规则优化。
7.
真实案例回顾与故障处理建议
1) 案例简介:某 SaaS 服务流量峰值 1200 qps,部署流程为 DNS 指向 CDN(CNAME)-> CDN 回源指向 WAF CNAME -> WAF 回源到 CVM(203.0.113.45)。
2) 遇到问题:首次将 WAF 切换到阻断模式后,误杀了部分第三方回调,导致 3% 的接口失败率上升。
3) 解决过程:回滚至监测模式、通过日志定位误杀规则(自定义规则 ID rule-789),将该规则设置为白名单并添加路径豁免。
4) 优化结果:恢复阻断并将误杀率降至 0.05%,同时将 CC 阈值从 200 qps 调整为 300 qps 并启用 JS 验证策略。
5) 经验总结:部署先审计流量、先监测再阻断、证书应支持自动续期、将日志与报警链路打通以实现 30 分钟内响应。