在一个轻量云服务器中安装多个网站是完全可行的,通常通过 虚拟主机(Virtual Host) 配置来实现。以下是详细步骤和建议,适用于常见的 Linux 系统(如 Ubuntu/CentOS)和主流 Web 服务器(如 Nginx 或 Apache)。
一、准备工作
-
选择操作系统
推荐使用 Ubuntu 20.04/22.04 或 CentOS 7/8。 -
安装 Web 服务器
选择 Nginx 或 Apache(推荐 Nginx,性能更好)。 -
拥有多个域名(或子域名)
如:site1.com、site2.com或blog.yoursite.com、shop.yoursite.com。 -
开放端口
确保云服务器安全组/防火墙开放 80(HTTP)和 443(HTTPS)端口。
二、使用 Nginx 安装多个网站(推荐)
1. 安装 Nginx
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
# CentOS/RHEL
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
2. 创建网站目录
为每个网站创建独立目录:
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
# 设置权限
sudo chown -R $USER:$USER /var/www/site1.com/html
sudo chown -R $USER:$USER /var/www/site2.com/html
3. 添加测试页面
# site1.com
echo "<h1>Welcome to Site1.com</h1>" | sudo tee /var/www/site1.com/html/index.html
# site2.com
echo "<h1>Welcome to Site2.com</h1>" | sudo tee /var/www/site2.com/html/index.html
4. 创建 Nginx 虚拟主机配置文件
创建 site1.com 的配置:
sudo nano /etc/nginx/sites-available/site1.com
内容如下:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
创建 site2.com 的配置:
sudo nano /etc/nginx/sites-available/site2.com
server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
5. 启用站点(创建软链接)
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
⚠️ 注意:Nginx 默认可能没有
sites-enabled和sites-available目录(Ubuntu 有,CentOS 可能需要手动创建或使用/etc/nginx/conf.d/)。
CentOS 用户建议:
直接把配置文件放入 /etc/nginx/conf.d/:
sudo cp /etc/nginx/sites-available/site1.com /etc/nginx/conf.d/
6. 测试并重启 Nginx
sudo nginx -t # 测试配置是否正确
sudo systemctl reload nginx
7. 域名解析
将 site1.com 和 site2.com 的 A 记录指向你的云服务器公网 IP。
三、使用 Apache 安装多个网站(备选)
1. 安装 Apache
# Ubuntu
sudo apt install apache2 -y
# CentOS
sudo yum install httpd -y
2. 创建网站目录(同上)
3. 配置虚拟主机
sudo nano /etc/apache2/sites-available/site1.com.conf
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com/html
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
启用站点:
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo systemctl reload apache2
四、可选:配置 HTTPS(使用 Let’s Encrypt)
使用 Certbot 为每个站点添加免费 SSL 证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com
Certbot 会自动修改 Nginx 配置,启用 HTTPS。
五、其他注意事项
-
资源限制
轻量服务器(如 1C1G)建议运行 2~3 个轻量级网站(静态页、WordPress 等需优化)。 -
数据库共享
多个网站可共用一个 MySQL/MariaDB,但建议使用不同数据库名和用户。 -
反向支持
可为 Node.js、Python(Flask/Django)等应用配置反向,实现多类型网站共存。 -
使用宝塔面板(可选)
如果不熟悉命令行,可安装 宝塔面板(BaoTa),图形化管理多个网站、数据库、SSL 等。wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
总结
| 步骤 | 说明 |
|---|---|
| 1 | 安装 Nginx/Apache |
| 2 | 为每个网站创建独立目录 |
| 3 | 配置虚拟主机(server block / VirtualHost) |
| 4 | 启用配置并重启服务 |
| 5 | 域名解析到服务器 IP |
| 6 | (可选)配置 HTTPS |
✅ 完成后,访问不同域名即可看到不同网站内容。
如需进一步帮助(如部署 WordPress、Node.js 应用等),可继续提问!
云计算HECS