公网入口与私网集群拓扑核心是“内外分治、单向可控”:公网仅暴露DNS→Anycast→SLB→API网关最小面,私网分域隔离(Web/数据/中间件/管理层),全域通过安全组与路由策略硬隔离,禁止私网主动出向,高并发下依赖连接复用、连接池、代理分片与本地缓存降载。

公网入口与私网集群的网络拓扑设计,核心是“内外分治、单向可控”:公网只暴露最小必要面,所有业务逻辑和数据处理必须收敛到受控私网内;流量进得来、数据出不去、攻击止于边界。
公网入口层:收敛、限流、过滤
公网流量不直连业务服务器,必须经由统一入口网关。典型结构为:DNS → 全球负载(如Cloudflare或云厂商Anycast)→ 四层SLB(如阿里云CLB、腾讯云LB)→ 七层API网关(如Kong、Nginx+OpenResty)。
- SLB仅开放80/443端口,后端挂载API网关集群,禁用直接转发至应用节点
- API网关强制校验JWT、限流(如1000 QPS/租户)、WAF规则(防SQL注入、CC攻击)、请求头清洗(如移除X-Forwarded-For伪造)
- 所有公网IP禁止SSH、数据库端口、管理后台等非业务端口暴露;若需运维,走跳板机+堡垒机+双因素认证
私网集群层:分域隔离、低延迟互通
私网采用分层分域设计,各域使用独立子网,通过核心交换机或三层VPC路由互通,禁止跨域直连,全部访问走服务发现或内部网关。
- Web/API层:10.0.1.0/24,部署无状态应用节点,自动扩缩容
- 数据层:10.0.2.0/24,MySQL主从、Redis集群、ES节点均在此网段,禁用公网路由
- 中间件层:10.0.3.0/24,Kafka、RabbitMQ、Nacos等,仅允许Web层和数据层按需访问
- 管理/监控层:10.0.99.0/24,Prometheus、Grafana、ELK、Ansible控制节点,严格限制访问来源
公网与私网之间:安全策略硬隔离
边界不是靠“信任”,而是靠“策略”。即使在云环境,也必须显式定义安全组与路由策略:
- SLB后端服务器的安全组:只允许来自SLB私网IP段(如10.0.0.0/16)的80/443入向,拒绝所有其他入向
- API网关到应用节点:仅放行指定健康检查端口(如8080)及服务通信端口(如9090),源地址限定为网关所在子网
- 应用节点访问数据库:源地址限定为Web层子网(10.0.1.0/24),目标端口仅开3306/6379,且数据库用户授权绑定私网IP段(如'webapp'@'10.0.1.%')
- 禁止任何私网节点主动发起公网出向连接(如curl外网API),确有需要走统一出口代理,并审计日志
高并发特化增强点
应对瞬时洪峰,拓扑需支持快速弹性与故障收敛:
- SLB与API网关之间启用连接复用+HTTP/2,减少TLS握手开销
- Web层与数据层之间启用连接池(如HikariCP)并配置合理超时(connectTimeout=1s, socketTimeout=3s)
- 数据库读写分离流量由ShardingSphere Proxy或MyCat代理完成,避免应用层硬编码IP
- 关键链路(如订单创建)增加本地缓存(Caffeine)+分布式锁(Redis RedLock),降低对下游依赖


















