部署概述

MITM Service 支持多种部署方式,您可以根据实际需求选择合适的方案。

部署方式对比

部署方式 适用场景 难度 维护成本 性能
Docker Compose 开发/测试/小规模生产
Kubernetes 大规模生产环境 ⭐⭐⭐
传统部署 定制化需求 ⭐⭐
云服务 快速上线 ⭐⭐ 中-高

Docker Compose 部署

推荐用于: 开发、测试、小规模生产环境

优点

  • ✅ 一键部署,快速启动
  • ✅ 环境隔离,依赖管理简单
  • ✅ 易于版本控制和回滚
  • ✅ 资源使用合理

部署步骤

# 克隆仓库
git clone https://github.com/yourusername/mitm-service.git
cd mitm-service

# 配置环境变量
cp web-service/.env.example web-service/.env
cp cookie-manager/.env.example cookie-manager/.env

# 启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

架构图

┌─────────────────────────────────────────────┐
│           Docker Host (单机)                 │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │  Nginx   │  │  Web     │  │  Cookie  │  │
│  │ Container│  │ Service  │  │ Manager  │  │
│  └──────────┘  └──────────┘  └──────────┘  │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │   MITM   │  │  MySQL   │  │  Redis   │  │
│  │  Proxy   │  │ Container│  │ Container│  │
│  └──────────┘  └──────────┘  └──────────┘  │
└─────────────────────────────────────────────┘

详见: Docker 部署指南

Kubernetes 部署

推荐用于: 大规模生产环境、需要高可用和自动扩展的场景

优点

  • ✅ 自动扩展和负载均衡
  • ✅ 服务自愈和健康检查
  • ✅ 滚动更新和回滚
  • ✅ 资源调度和优化

部署步骤

# 创建命名空间
kubectl create namespace mitm-service

# 应用配置
kubectl apply -f k8s/configmaps.yaml
kubectl apply -f k8s/secrets.yaml

# 部署数据库
kubectl apply -f k8s/mysql.yaml
kubectl apply -f k8s/redis.yaml

# 部署应用
kubectl apply -f k8s/web-service.yaml
kubectl apply -f k8s/cookie-manager.yaml
kubectl apply -f k8s/mitm-proxy.yaml

# 部署 Ingress
kubectl apply -f k8s/ingress.yaml

架构图

┌────────────────── Kubernetes Cluster ──────────────────┐
│                                                          │
│  ┌─────────────────────────────────────────────────┐   │
│  │            Ingress Controller                    │   │
│  └────────────────┬────────────────────────────────┘   │
│                   │                                      │
│  ┌────────────────┼────────────────────────────────┐   │
│  │  ┌─────────────▼──────┐    ┌──────────────────┐ │   │
│  │  │   Web Service      │    │  Cookie Manager  │ │   │
│  │  │  (3 replicas)      │    │   (2 replicas)   │ │   │
│  │  └─────────────────────┘    └──────────────────┘ │   │
│  │                                                   │   │
│  │  ┌─────────────────────┐    ┌──────────────────┐ │   │
│  │  │   MITM Proxy        │    │  HTTP Listener   │ │   │
│  │  │  (2 replicas)       │    │   (2 replicas)   │ │   │
│  │  └─────────────────────┘    └──────────────────┘ │   │
│  │                  Application Layer                │   │
│  └───────────────────────────────────────────────────┘   │
│                                                          │
│  ┌───────────────────────────────────────────────────┐   │
│  │  ┌──────────────┐              ┌──────────────┐  │   │
│  │  │    MySQL     │              │    Redis     │  │   │
│  │  │  StatefulSet │              │  StatefulSet │  │   │
│  │  └──────────────┘              └──────────────┘  │   │
│  │                   Data Layer                      │   │
│  └───────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────┘

传统部署

推荐用于: 特殊定制需求、已有基础设施

优点

  • ✅ 完全控制部署环境
  • ✅ 可深度定制
  • ✅ 与现有系统集成方便

部署步骤

详见: 生产环境部署

云服务部署

AWS

服务选择:

  • ECS/EKS: 容器编排
  • RDS: MySQL 托管服务
  • ElastiCache: Redis 托管服务
  • ALB: 负载均衡
  • S3: 静态文件存储

阿里云

服务选择:

  • ACK: Kubernetes 服务
  • RDS: MySQL 云数据库
  • Redis: Redis 云数据库
  • SLB: 负载均衡
  • OSS: 对象存储

Cloudflare

适用于: 文档站点、静态资源

详见: Cloudflare 部署指南

部署架构选择

单机部署

适用规模: < 1000 并发

单台服务器
├── Nginx (反向代理)
├── Web Service
├── Cookie Manager
├── MITM Proxy
├── MySQL
└── Redis

配置要求:

  • CPU: 4 核
  • 内存: 8 GB
  • 磁盘: 100 GB SSD

分布式部署

适用规模: 1000 - 10000 并发

负载均衡器
    ├── 应用服务器 1
    │   ├── Web Service
    │   ├── Cookie Manager
    │   └── MITM Proxy
    │
    ├── 应用服务器 2
    │   ├── Web Service
    │   ├── Cookie Manager
    │   └── MITM Proxy
    │
    └── 数据服务器
        ├── MySQL (主从复制)
        └── Redis (集群)

微服务架构

适用规模: > 10000 并发

Kong/Nginx (API Gateway)
    ├── Web Service Cluster (多实例)
    ├── Cookie Manager Cluster (多实例)
    ├── MITM Proxy Cluster (多实例)
    ├── MySQL Cluster (多主从)
    └── Redis Cluster (分片)

部署清单

部署前检查

  • [ ] 服务器资源满足要求
  • [ ] 网络环境配置正确
  • [ ] 域名和 SSL 证书准备就绪
  • [ ] 数据库已创建和配置
  • [ ] Redis 已安装和配置
  • [ ] 防火墙规则已设置
  • [ ] 备份策略已制定

部署步骤

  • [ ] 部署数据库服务
  • [ ] 部署缓存服务
  • [ ] 部署应用服务
  • [ ] 配置反向代理
  • [ ] 配置 SSL 证书
  • [ ] 验证服务可用性
  • [ ] 配置监控和日志
  • [ ] 配置备份任务

部署后验证

  • [ ] 服务健康检查通过
  • [ ] API 接口测试通过
  • [ ] 代理功能正常
  • [ ] 登录任务可执行
  • [ ] 日志正常输出
  • [ ] 监控数据正常
  • [ ] 性能测试达标

安全配置

基础安全

# 1. 更新系统
sudo apt-get update && sudo apt-get upgrade

# 2. 配置防火墙
sudo ufw enable
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS

# 3. 配置 fail2ban
sudo apt-get install fail2ban
sudo systemctl enable fail2ban

# 4. 禁用 root 远程登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

应用安全

  • ✅ 使用强密码和密钥认证
  • ✅ 定期更新依赖和补丁
  • ✅ 配置 HTTPS 和 SSL 证书
  • ✅ 启用请求频率限制
  • ✅ 配置数据备份和恢复
  • ✅ 监控异常访问和攻击

性能优化

应用层优化

  • 启用 Node.js 集群模式
  • 配置 PM2 进程管理
  • 使用连接池
  • 启用响应缓存

数据库优化

  • 配置索引
  • 优化查询语句
  • 启用查询缓存
  • 配置读写分离

代理优化

  • 调整 worker 数量
  • 配置连接池大小
  • 启用压缩
  • 使用 HTTP/2

监控和维护

监控指标

  • 系统指标: CPU、内存、磁盘、网络
  • 应用指标: 请求量、响应时间、错误率
  • 业务指标: 登录成功率、Cookie 有效期

日志管理

  • 集中日志收集
  • 日志分级和轮转
  • 日志分析和告警

备份策略

  • 数据库定时备份
  • 配置文件备份
  • 代码版本控制

故障排查

详见: 故障排查指南

下一步

results matching ""

    No results matching ""