在云服务器(如阿里云ECS)上搭建多个网站(多站点),可以通过以下几种方式实现,具体取决于你的需求和环境配置。以下是常见的方法及步骤:
一、使用 Apache 搭建多站点(基于虚拟主机)
1. 安装 Apache
# CentOS / RHEL
sudo yum install httpd -y
# Ubuntu / Debian
sudo apt update && sudo apt install apache2 -y
2. 配置虚拟主机(Virtual Host)
示例:两个站点分别为 site1.com 和 site2.com
-
创建网站根目录:
sudo mkdir -p /var/www/site1.com/public_html sudo mkdir -p /var/www/site2.com/public_html -
创建虚拟主机配置文件(CentOS):
sudo vi /etc/httpd/conf.d/vhosts.conf
添加如下内容:
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com/public_html
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2.com/public_html
</VirtualHost>
-
Ubuntu 用户编辑:
sudo vi /etc/apache2/sites-available/000-default.conf或创建单独的
.conf文件并启用。 -
启用站点(Ubuntu):
sudo a2ensite site1.conf sudo a2ensite site2.conf sudo systemctl restart apache2
3. 测试访问
确保域名已解析到服务器IP地址,浏览器访问 http://site1.com 和 http://site2.com 应该显示不同内容。
二、使用 Nginx 搭建多站点(基于 server 块)
1. 安装 Nginx
# CentOS
sudo yum install nginx -y
# Ubuntu
sudo apt install nginx -y
2. 创建网站目录
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
3. 配置 server 块
- 创建配置文件(CentOS):
sudo vi /etc/nginx/conf.d/site1.conf
添加:
server {
listen 80;
server_name site1.com www.site1.com;
location / {
root /var/www/site1.com/html;
index index.html;
try_files $uri $uri/ =404;
}
}
同样创建 /etc/nginx/conf.d/site2.conf:
server {
listen 80;
server_name site2.com www.site2.com;
location / {
root /var/www/site2.com/html;
index index.html;
try_files $uri $uri/ =404;
}
}
4. 重启 Nginx
sudo systemctl restart nginx
三、使用端口区分多站点
如果你只有一个公网 IP,也可以通过不同的端口来部署多个站点:
示例:
- 站点A:
http://your-ip:80 - 站点B:
http://your-ip:8080
你需要配置防火墙开放对应端口,并分别运行两个 Web 服务监听不同端口。
四、使用反向X_X + 多个后端服务(高级)
例如,你可以使用 Nginx 或 Apache 作为反向X_X,将请求转发给运行在不同端口或路径上的应用(如 Node.js、Tomcat、Python Flask/Django 等)。
五、注意事项
- 域名绑定:每个站点需绑定对应的域名,或者通过 IP + 端口访问。
- 防火墙设置:确保安全组中开放了 HTTP (80)、HTTPS (443) 等所需端口。
- SSL 支持:如果需要 HTTPS,可以为每个站点申请 SSL 证书。
- 资源限制:根据 ECS 实例性能合理分配资源,避免负载过高。
六、总结
| 方法 | 适用场景 |
|---|---|
| Apache 虚拟主机 | 简单静态网站或 PHP 网站 |
| Nginx server 块 | 高并发、动态网站、前后端分离项目 |
| 多端口部署 | 临时测试、开发环境 |
| 反向X_X | 微服务架构、多个后端服务 |
如你有具体的环境(比如是否是 LNMP、LAMP、Docker 等),可以告诉我,我可以提供更详细的指导。
CDNK博客