如何在一台阿里云服务器上搭建多个网站?

在阿里云服务器上搭建多个网站,核心思路是通过 Web 服务器(如 Nginx/Apache)配置虚拟主机(Virtual Host),结合域名解析和 SSL 证书管理。以下是通用且安全的实操步骤(以 Ubuntu + Nginx 为例):


✅ 前提准备

  1. 已购买并登录阿里云 ECS 实例
  2. 已绑定至少一个公网 IP(可通过控制台查看)
  3. 已配置安全组规则:放行 80(HTTP)、443(HTTPS),必要时开放 SSH(22)
  4. 拥有多个域名(可在阿里云 DNS 或第三方 DNS 服务商处管理)

📌 步骤详解

1️⃣ 安装 Web 服务器(以 Nginx 为例)

sudo apt update
sudo apt install nginx -y
# 可选:安装 PHP、MySQL 等依赖(如需动态站点)
sudo apt install php-fpm mysql-server -y

验证运行:

systemctl status nginx
curl http://localhost  # 应看到默认欢迎页

2️⃣ 创建网站目录结构

为每个网站创建独立目录与配置:

sudo mkdir -p /var/www/site1/html
sudo mkdir -p /var/www/site2/html
sudo chown -R www-data:www-data /var/www/site1/html
sudo chown -R www-data:www-data /var/www/site2/html

💡 建议:每个网站用独立用户/目录隔离,提升安全性。


3️⃣ 编写 Nginx 虚拟主机配置

示例:site1.com → /var/www/site1/html
sudo nano /etc/nginx/sites-available/site1.com

内容示例:

server {
    listen 80;
    server_name site1.com www.site1.com;

    root /var/www/site1/html;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    # PHP 支持(如需要)
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}
示例:site2.org → /var/www/site2/html

复制并重命名配置文件,修改 server_nameroot 路径即可。


4️⃣ 启用配置 & 测试语法

# 创建软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.org /etc/nginx/sites-enabled/

# 移除默认站点(避免冲突)
sudo rm /etc/nginx/sites-enabled/default

# 测试配置
sudo nginx -t

# 重载生效
sudo systemctl reload nginx

5️⃣ 配置域名解析(DNS)

阿里云云解析 DNS 或其他 DNS 服务商中:

  • site1.com 添加 A 记录 → 指向你的 ECS 公网 IP
  • site2.org 同样添加 A 记录
  • 如有 www 子域,可加 CNAME 或另设 A 记录

⏱️ DNS 生效通常需 5~60 分钟,可用 ping site1.com 验证是否解析到你的 IP。


6️⃣ 部署网站内容

将 HTML/PHP 文件上传至对应目录:

# 本地上传示例(使用 scp)
scp index.html root@your-ip:/var/www/site1/html/

访问测试:

http://site1.com
http://site2.org

7️⃣(推荐)配置 HTTPS(Let’s Encrypt)

使用 Certbot 自动申请免费证书:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com -d site2.org -d www.site2.org

✅ 自动完成:

  • 生成证书
  • 配置 Nginx 重定向 HTTP→HTTPS
  • 设置自动续期(/etc/cron.d/certbot

🔐 安全加固建议

项目 操作
关闭默认站点 rm /etc/nginx/sites-enabled/default
限制目录权限 chmod 755 /var/www/*, chmod 644 html/*
隐藏版本号 server_tokens off; 加入全局 http{}
防火墙 仅开放必要端口(ufw allow 'Nginx Full'
定期更新 apt upgrade && apt autoremove

🔄 扩展场景

  • 多协议支持:同一域名不同路径(如 site.com/blog)→ 用 location /blog/ 配置
  • 反向X_X后端服务:Nginx 作为网关转发到 Docker/Java 应用
  • 容器化部署:Docker Compose + Nginx 多 host 配置(更灵活)

需要我提供:

  • Apache 版本配置模板?
  • WordPress 多站点一键部署脚本?
  • 使用阿里云宝塔面板图形化操作指南?
    欢迎告诉我你的具体需求 😊
云服务器