加油
努力

如何在阿里云服务器上配置两个不同的网站?

在阿里云服务器(如ECS实例)上配置两个不同的网站,通常可以通过 基于域名的虚拟主机(Virtual Host) 实现。以下是详细的步骤,以常见的 Linux + Apache 或 Nginx 为例进行说明。


🌐 前提条件

  1. 拥有一台阿里云 ECS 实例(Linux 系统,如 CentOS、Ubuntu)
  2. 已安装 Web 服务器(Apache 或 Nginx)
  3. 有两个域名(如 site1.comsite2.com),并已解析到该服务器公网 IP
  4. 安全组已放行 HTTP(80端口)和 HTTPS(443端口)

✅ 方法一:使用 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

创建测试页面:

echo "<h1>Welcome to Site1.com</h1>" | sudo tee /var/www/site1.com/html/index.html
echo "<h1>Welcome to Site2.com</h1>" | sudo tee /var/www/site2.com/html/index.html

3. 设置权限

sudo chown -R www-data:www-data /var/www  # Ubuntu/Debian
# 或
sudo chown -R nginx:nginx /var/www        # CentOS

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/

注意:Ubuntu 默认有 sites-enabled 目录;CentOS 可能需要手动创建或直接放在 /etc/nginx/conf.d/ 下。

6. 测试并重启 Nginx

sudo nginx -t           # 测试配置是否正确
sudo systemctl reload nginx

✅ 方法二:使用 Apache 配置两个网站

1. 安装 Apache(如未安装)

# Ubuntu/Debian
sudo apt install apache2 -y

# CentOS
sudo yum install httpd -y

2. 创建网站目录

sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html

echo "<h1>Site1.com</h1>" | sudo tee /var/www/site1.com/html/index.html
echo "<h1>Site2.com</h1>" | sudo tee /var/www/site2.com/html/index.html

3. 创建虚拟主机配置文件

Ubuntu/Debian:

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>

同样创建 site2.com.conf

<VirtualHost *:80>
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com/html
    ErrorLog ${APACHE_LOG_DIR}/site2_error.log
    CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>

启用站点:

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo systemctl reload apache2

CentOS:

将配置文件放入 /etc/httpd/conf.d/site1.com.conf 即可,Apache 会自动加载 .conf 文件。


🔐 可选:配置 HTTPS(SSL 证书)

使用 Let’s Encrypt 免费证书(需域名已解析):

sudo certbot --nginx -d site1.com -d www.site1.com   # Nginx
# 或
sudo certbot --apache -d site1.com                   # Apache

Certbot 会自动配置 SSL 并重定向 HTTP → HTTPS。


🧪 验证访问

在浏览器中分别访问:

  • http://site1.com
  • http://site2.com

应看到各自对应的页面。


⚠️ 注意事项

  1. 域名解析:确保两个域名 A 记录指向你的 ECS 公网 IP。
  2. 安全组规则:在阿里云控制台开放 80 和 443 端口。
  3. 防火墙:检查系统防火墙(如 ufwfirewalld)是否放行。
  4. SELinux(CentOS):必要时调整上下文:
    sudo setsebool -P httpd_can_network_connect 1

✅ 总结:通过虚拟主机技术(Nginx/Apache),可以在同一台阿里云服务器上轻松托管多个网站。推荐使用 Nginx,性能更好且配置清晰。

如有需要,我也可以提供一键部署脚本或 Docker 方案。欢迎继续提问!

云服务器