在阿里云轻量应用服务器(Simple Application Server)上部署两个不同的网站,核心思路是利用 Web 服务器(如 Nginx 或 Apache)的虚拟主机(Virtual Host)功能,通过域名绑定或端口区分来实现多站点隔离。
由于轻量服务器通常预装了镜像环境(如 LAMP、LNMP),以下以最常见的 Nginx + Linux (CentOS/Debian) 环境为例,提供两种主流配置方案。你可以根据实际需求选择。
方案一:基于域名的虚拟主机(推荐,最常用)
这是最标准的做法。假设你有两个域名 site1.com 和 site2.com,都指向同一台服务器的 IP。Nginx 会根据请求中的 Host 头字段,将流量分发到不同的网站目录。
步骤 1:准备网站文件
假设你的网站根目录结构如下:
/www/sites/
├── site1/ # site1.com 的文件
│ └── index.html
└── site2/ # site2.com 的文件
└── index.html
步骤 2:创建 Nginx 配置文件
登录服务器后,进入 Nginx 配置目录(通常在 /etc/nginx/conf.d/ 或 /usr/local/nginx/conf/vhost/,具体取决于安装方式)。
为第一个网站创建配置文件 site1.conf:
server {
listen 80;
server_name site1.com www.site1.com;
root /www/sites/site1;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
为第二个网站创建配置文件 site2.conf:
server {
listen 80;
server_name site2.com www.site2.com;
root /www/sites/site2;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
注意:确保每个
server块中的server_name是唯一的,且与 DNS 解析记录一致。
步骤 3:测试并重载 Nginx
# 测试配置文件语法是否正确
nginx -t
# 如果显示 "syntax is ok" 和 "test is successful",则重载服务
systemctl reload nginx
# 或者如果是手动安装的:
/usr/local/nginx/sbin/nginx -s reload
步骤 4:DNS 解析
在阿里云云解析 DNS 或其他域名服务商处,将 site1.com 和 site2.com 的 A 记录都指向你的轻量服务器公网 IP。
方案二:基于端口的虚拟主机(适用于无域名或测试场景)
如果你没有两个域名,或者想通过不同端口访问不同网站,可以监听不同端口。
修改 Nginx 配置
在同一个 server 块或多个 server 块中指定不同端口:
# 网站1:默认端口 80
server {
listen 80;
server_name _; # 匹配所有未指定的域名
root /www/sites/site1;
index index.html;
}
# 网站2:自定义端口 8080
server {
listen 8080;
server_name _;
root /www/sites/site2;
index index.html;
}
关键操作:开放防火墙端口
轻量服务器默认只开放了 80、443 等常见端口。你需要在阿里云控制台中执行以下操作:
- 登录阿里云控制台,找到你的轻量应用服务器实例。
- 点击 “防火墙” 标签页。
- 添加一条新规则:
- 协议:TCP
- 端口:8080
- 授权对象:0.0.0.0/0(允许所有 IP)
- 策略:允许
- 同时,确保操作系统内部的防火墙(如
firewalld或iptables)也放行了 8080 端口。
访问时,用户需使用 http://你的IP:8080 来访问第二个网站。
方案三:使用宝塔面板(BT Panel)—— 最适合新手
如果你不熟悉命令行,强烈建议使用 宝塔面板。它提供了图形化界面,极大简化了多网站配置。
操作步骤:
-
安装宝塔面板:
在轻量服务器终端运行一键安装脚本(以 CentOS 为例):yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec(其他系统请参考宝塔官网文档)
-
登录面板:
安装完成后,获取内网地址和网络地址,用浏览器登录。 -
添加网站:
- 点击左侧菜单 “网站” -> “添加站点”。
- 填写域名(如
site1.com),根目录可自动创建。 - 再次点击 “添加站点”,添加第二个域名
site2.com。
-
上传文件:
使用面板内的“文件”管理功能,将对应网站的文件上传至各自的根目录。 -
SSL 证书:
宝塔面板内置 Let’s Encrypt 免费证书申请功能,一键即可为多个域名配置 HTTPS。
常见问题与注意事项
-
权限问题:
确保 Nginx 进程有权限读取网站目录。通常需要将目录所有者设置为www用户(宝塔默认)或nginx用户(手动安装默认):chown -R www:www /www/sites/site1 -
HTTPS 支持:
如果希望两个网站都支持 HTTPS,需要在 Nginx 配置中添加listen 443 ssl;并指定证书路径。对于方案一,每个server块需要独立的 SSL 证书;对于方案二,如果使用 SNI(Server Name Indication),也可以在同一 IP 上部署多个 HTTPS 站点。 -
资源限制:
轻量服务器内存有限(如 2GB 或 4GB),同时运行两个网站时,注意监控 CPU 和内存使用情况。避免同时开启过多后台服务。 -
备案要求:
在中国大陆地区,使用阿里云服务器并提供公网访问的网站必须进行 ICP 备案。未备案域名无法解析到国内服务器,或会被阻断访问。请确保你的域名已完成备案。 -
安全组/防火墙:
务必在阿里云控制台的“防火墙”设置中放行所需端口(80, 443, 以及自定义端口如 8080),否则外部无法访问。
总结
- 有域名、追求规范 → 使用 方案一(Nginx 虚拟主机),灵活高效。
- 无域名、快速测试 → 使用 方案二(端口区分),但需注意防火墙配置。
- 不熟悉 Linux 命令 → 使用 方案三(宝塔面板),可视化操作,省心省力。
根据你的技术背景和实际需求选择合适的方案即可。如有具体报错信息,可提供详细日志进一步排查。
CLOUD云枢