以下是针对中小企业使用企业微信搭建内网应用的典型网络拓扑架构图及说明:
网络拓扑架构图
+-------------------+ +-------------------+ +-------------------+
| 企业微信客户端 | | 互联网 | | 企业微信服务 |
| (手机/PC) | <------> | (公网通信) | <------> | (api.work.weixin.qq.com) |
+-------------------+ +-------------------+ +-------------------+
|
| HTTPS/API回调
v
+-----------------------+
| 企业防火墙/路由器 |
| (公网IP: 123.123.123.123) |
+-----------------------+
|
| 反向代理端口映射
v
+-----------------------+
| 反向代理服务器 |
| (Nginx, 域名: app.example.com) |
+-----------------------+
|
| 内网HTTP
v
+-----------------------+
| 内网交换机 |
+-----------------------+
| |
| |
v v
+---------------------+ +---------------------+
| 内网应用服务器 | | 内网数据库服务器 |
| (功能A, 端口8080) | | (MySQL/Redis) |
+---------------------+ +---------------------+
关键组件说明
1. 用户端
- 企业微信客户端:员工通过企业微信App或PC端访问功能A。
- 依赖互联网:必须联网与企业微信服务通信。
2. 企业微信服务(公网)
- 核心功能:提供用户身份认证、API调用(如OAuth2.0登录)、消息推送等服务。
- 回调地址:需配置功能A的公网域名(如
app.example.com
),指向企业反向代理服务器。
3. 企业防火墙/路由器
- 公网IP:暴露反向代理服务器的公网地址(如
123.123.123.123
)。 - 安全规则:仅开放必要端口(如HTTPS 443、VPN端口)。
4. 反向代理服务器(核心枢纽)
- 角色:
- 通过Nginx将公网请求转发到内网应用服务器。
- 提供HTTPS终止(SSL证书部署在此)。
- 配置示例:
server { listen 443 ssl; server_name app.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://192.168.1.100:8080; # 内网应用服务器地址 proxy_set_header Host $host; } }
5. 内网服务器
- 应用服务器:部署功能A,仅允许内网访问(如
192.168.1.100:8080
)。 - 数据库服务器:存储业务数据,通常与应用服务器隔离。
数据流向
- 用户发起请求:员工在企业微信点击功能A入口。
- 企业微信服务认证:企业微信服务器验证用户身份,回调功能A的公网域名(
app.example.com
)。 - 反向代理转发:Nginx将请求通过内网转发到应用服务器。
- 内网处理:应用服务器与数据库交互,返回结果。
- 响应返回用户:数据沿原路径返回至企业微信客户端。
安全设计建议
- HTTPS全链路加密:
- 反向代理与企业微信服务间使用HTTPS。
- 内网HTTP通信可明文(若内网安全可控)。
- IP白名单:
- 防火墙仅允许企业微信服务器IP(需查询企业微信官方IP列表)。
- 访问控制:
- 企业微信应用设置为“仅限企业内部成员使用”。
- 内网应用服务器限制访问IP(如仅允许反向代理服务器)。
- 备份方案:
- 若反向代理不可用,可通过VPN(如OpenVPN)直接访问内网(备用方案)。
适用场景
- 中小企业典型需求:OA审批、内部工单系统、数据报表等。
- 成本控制:无需公网直接暴露应用服务器,减少安全风险。
- 扩展性:可通过负载均衡横向扩展反向代理和应用服务器。