当前位置:首页 > 云服务器 > 正文

阿里云服务器多站点

阿里云 服务器支持多站点管理,可通过不同端口/域名区分,灵活分配资源,实现高效

基础架构设计原则

要素 说明
共享资源 CPU/内存/带宽由单台ECS统一承载
隔离方式 基于域名区分(推荐)>基于端口区分>基于目录路径区分
协议支持 HTTP/HTTPS双协议兼容,建议启用TLS加密
扩展性 可通过负载均衡SLB横向扩展,单个站点可独立升降配


实施步骤详解

前期准备

必备条件清单

  • 已完成阿里云账号实名认证
  • 至少1个已备案域名(需完成ICP备案)
  • ECS实例(推荐选择通用型g系列,配置≥2核4G)
  • 操作系统建议CentOS 7.9+/Ubuntu 20.04+
  • 已安装宝塔面板(可选)或直接使用原生环境

域名解析配置

关键操作示例(假设主域名example.com):

| 子域名 | 记录类型 | 记录值 | 作用说明 |

|————-|———-|——————|—————————|

| www.a.com | A记录 | ECS公网IP | 站点A入口 |

| www.b.com | A记录 | ECS公网IP | 站点B入口 |

| .c.com | CNAME | yourdomain.cn | 通配符泛解析(特殊场景) |

️ 注意:所有域名需指向同一台ECS的公网IP

Web服务器配置(以Nginx为例)

核心配置文件路径:/usr/local/nginx/conf/vhost/.conf

阿里云服务器多站点 第1张

标准虚拟主机模板

server { listen 80; server_name www.a.com; # 对应第一个站点 root /www/website_a; # 站点根目录 index index.html; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name www.b.com; # 第二个站点 root /www/website_b; index index.php; # PHP项目示例 location ~ .php$ { fastcgi_pass unix:/dev/shm/php-fpm.sock; } }

站点目录权限管理

典型目录结构

/www/ ├── website_a/ # 站点A代码 │ ├── public/ # 公开文件 │ └── .env # 环境变量 └── website_b/ # 站点B代码 ├── assets/ # 静态资源 └── config/ # 配置文件

权限设置命令

阿里云服务器多站点 第2张

HTTPS证书部署

推荐方案对比

| 方案 | 优点 | 缺点 | 适用场景 |

|—————|———————–|—————————|————————|

| Let’s Encrypt | 免费自动续期 | 90天有效期 | 开发/测试环境 |

| DigiCert | 1年有效期+商业背书 | 需付费 | 生产环境 |

| Alibaba Cloud| 集成OSS对象存储加速 | 依赖阿里云生态 | 全栈上云企业 |

Nginx配置片段

server { listen 443 ssl http2; server_name www.a.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; # ...其他配置... }


运维管理要点

性能监控指标

指标 健康阈值 异常处理建议
CPU使用率 <70% 优化代码/升级配置
内存占用 <80% 增加交换分区/调整进程数
磁盘IOPS <500次/秒 迁移高频读写数据至ESSD云盘
QPS 根据业务需求 启用CDN加速/数据库读写分离

日志分析策略

关键日志文件

  • /var/log/nginx/access.log → 访问量统计
  • /var/log/nginx/error.log → 错误排查
  • /var/log/php-fpm/error.log → PHP错误追踪

常用分析命令

阿里云服务器多站点 第3张

# 查看最近1小时TOP10请求URI tail -n 1000 access.log | grep -Eo 'GET|POST [^?]+' | sort | uniq -c | sort -nr | head -n10 # 统计各站点流量占比 awk '{print $7}' access.log | grep -E 'www.a.com|www.b.com' | sort | uniq -c | sort -nr


常见问题与解答

Q1: 不同站点出现互相跳转怎么办?

原因分析:Nginx配置中的root指令顺序错误导致优先级混乱。

解决方案

  1. 确保每个server块都有明确的server_name声明
  2. 将默认站点放在最后(无server_name的server块)
  3. 检查是否存在重复的location匹配规则
  4. 执行nginx -t验证配置文件语法正确性

Q2: HTTPS证书总是提示过期如何解决?

排查步骤

  1. 确认系统时间同步(ntpd服务正常运行)
  2. 检查证书文件权限(应为644)
  3. 验证证书链完整性:openssl x509 -in fullchain.pem -noout -text
  4. 若使用Let’s Encrypt,执行更新命令:certbot renew --force-renewal
  5. 清除浏览器缓存后重试访问

Q3: 如何限制单个站点的资源使用?

推荐方案

  1. CPU限制:通过cpulimit命令或systemd服务单元文件设置 [Service] CPUQuota=50% # 限制最大使用率为50%
  2. 内存限制:使用ulimit命令或容器化部署(Docker)
  3. 带宽控制:通过TC(Traffic Control)工具实现QoS限速
  4. 进程数限制:在Nginx配置中添加worker_processes auto;并配合PM2进程管理器

Q4: 如何快速切换测试环境和生产环境?

最佳实践

  1. 环境隔离:使用不同的文档根目录(如/www/test/和/www/prod/)
  2. 配置版本控制:将Nginx配置文件纳入Git仓库管理
  3. 快速切换脚本:编写shell脚本实现以下功能:
    • 备份当前生产环境配置
    • 替换为测试环境配置
    • 重启Nginx服务
    • 执行数据库迁移(如有需要)
  4. DNS切换方案:通过修改本地hosts文件或使用Cloudflare的Develop

0