在阿里云轻量应用服务器(Simple Application Server)上配置两个不同的网站,通常有以下几种主流方案。选择哪种方案取决于你的技术栈、是否使用域名以及你对服务器的管理能力。
以下是最常用且推荐的两种方法:
方法一:使用 Nginx 虚拟主机(Virtual Hosts)—— 推荐用于静态网站或 PHP/Node.js 后端
这是最标准、性能最好、资源占用最低的方式。通过一个 Nginx 实例监听不同域名或端口,指向不同的网站目录。
前提条件
- 服务器已安装 Nginx(阿里云镜像通常自带)。
- 你拥有两个域名(例如
a.com和b.com),并已解析到服务器 IP。 - 两个网站的文件分别存放在不同目录,如
/var/www/site_a和/var/www/site_b。
配置步骤
-
创建网站目录
sudo mkdir -p /var/www/site_a sudo mkdir -p /var/www/site_b # 将你的网站文件上传到对应目录 -
配置第一个网站(site_a)
创建配置文件:sudo nano /etc/nginx/conf.d/site_a.conf内容示例:
server { listen 80; server_name a.com www.a.com; # 替换为你的域名 root /var/www/site_a; index index.html index.htm; location / { try_files $uri $uri/ =404; } } -
配置第二个网站(site_b)
创建配置文件:sudo nano /etc/nginx/conf.d/site_b.conf内容示例:
server { listen 80; server_name b.com www.b.com; # 替换为你的域名 root /var/www/site_b; index index.html index.htm; location / { try_files $uri $uri/ =404; } } -
测试并重载 Nginx
sudo nginx -t # 检查配置是否有语法错误 sudo systemctl reload nginx # 重载配置生效 -
防火墙设置
确保阿里云控制台的安全组规则中放行了 TCP 80 和 TCP 443(如果启用 HTTPS)。
方法二:使用 Docker 容器隔离 —— 推荐用于复杂环境或需要多语言混合部署
如果你希望每个网站独立运行其依赖环境(如一个用 Python,一个用 Java),Docker 是最佳选择。
前提条件
- 服务器已安装 Docker 和 Docker Compose。
- 两个网站各自有独立的代码仓库或镜像。
配置步骤
-
为每个网站创建项目目录
mkdir ~/site_a ~/site_b -
编写 site_a 的 docker-compose.yml
version: '3' services: web: image: nginx:alpine ports: - "8081:80" # 映射到主机端口 8081 volumes: - ./html:/usr/share/nginx/html注意:这里我们使用不同端口避免冲突。
-
编写 site_b 的 docker-compose.yml
version: '3' services: web: image: nginx:alpine ports: - "8082:80" # 映射到主机端口 8082 volumes: - ./html:/usr/share/nginx/html -
启动服务
cd ~/site_a && docker-compose up -d cd ~/site_b && docker-compose up -d -
反向X_X(可选但推荐)
为了使用域名访问而非端口号,你需要在前端再搭一个 Nginx 做反向X_X,或者使用 Caddy 等自动管理 HTTPS 的工具。简单版 Caddyfile 示例:
a.com { reverse_proxy localhost:8081 } b.com { reverse_proxy localhost:8082 }
方法三:使用宝塔面板(BT Panel)—— 最适合新手
如果你不熟悉命令行,阿里云提供了一键安装的“宝塔 Linux 面板”镜像,图形化操作最简单。
步骤
- 登录阿里云控制台 → 找到你的轻量应用服务器 → 点击“远程连接”或使用 SSH 登录。
- 安装宝塔面板(如果尚未安装):
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec - 进入面板:根据提示获取内网地址和账号密码,在浏览器中打开。
- 添加站点:
- 点击左侧“网站” → “添加站点”。
- 输入第一个域名
a.com,根目录默认即可。 - 再次点击“添加站点”,输入第二个域名
b.com。
- 上传网站文件:
- 在“文件”管理中,进入对应域名的根目录,上传你的网站代码。
- 配置 SSL:
- 在宝塔面板中可为每个域名免费申请 Let’s Encrypt 证书。
⚠️ 注意:宝塔面板会占用 8888 端口,记得在阿里云安全组中放行该端口以便管理。
关键注意事项
| 项目 | 说明 |
|---|---|
| 域名备案 | 在中国大陆,所有绑定域名的网站必须完成 ICP 备案,否则 Nginx/Docker 即使配置成功也无法通过域名访问(会被拦截)。 |
| 安全组规则 | 必须在阿里云控制台 → 安全组中放行: • TCP 80(HTTP) • TCP 443(HTTPS) • 如果是非标准端口(如 Docker 方案中的 8081),也需放行。 |
| 资源限制 | 轻量服务器内存较小(如 1GB/2GB),同时运行两个大型网站可能吃紧。建议监控 CPU 和内存使用情况。 |
| HTTPS | 强烈建议为两个网站都配置 HTTPS,提升安全性和 SEO 排名。Nginx 和宝塔均可轻松实现。 |
总结建议
- 如果你是初学者 → 选择 方法三:宝塔面板,可视化操作,出错率低。
- 如果你有一定 Linux 基础,追求性能和简洁 → 选择 方法一:Nginx 虚拟主机。
- 如果你的网站技术栈复杂(如前后端分离、微服务) → 选择 方法二:Docker。
你可以根据自身情况选择最适合的方案。如需进一步帮助(如具体报错排查),欢迎提供更多信息!
云小栈