阿里云服务器怎么设置虚拟主机?

在阿里云服务器(ECS)上设置虚拟主机,主要是通过配置 Web 服务器软件(如 Apache 或 Nginx)来实现的。虚拟主机可以让一台服务器托管多个网站,每个网站绑定不同的域名。

下面以 NginxApache 分别介绍如何在阿里云 ECS 上配置虚拟主机:


🧱 前提条件

  1. 已购买阿里云 ECS 实例,并已安装 Linux 系统(如 CentOS、Ubuntu 等)。
  2. 已安装 Web 服务器软件(如 Nginx 或 Apache)。
  3. 已备案的域名(如果用于公网访问)。
  4. 安全组已开放 80(HTTP)或 443(HTTPS)端口。

✅ 使用 Nginx 配置虚拟主机(推荐)

步骤 1:安装 Nginx(如果未安装)

# CentOS/RHEL
sudo yum install nginx -y

# Ubuntu/Debian
sudo apt update && sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

步骤 2:创建网站目录

为每个站点创建独立的目录:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

你可以把网页文件放入对应的 public_html 文件夹中。


步骤 3:创建虚拟主机配置文件

方法一:直接修改 /etc/nginx/conf.d/

新建一个配置文件,例如:

sudo nano /etc/nginx/conf.d/example.com.conf

写入如下内容:

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

    root /var/www/example.com/public_html;
    index index.html index.htm;

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

同样,再创建 test.com.conf

sudo nano /etc/nginx/conf.d/test.com.conf
server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com/public_html;
    index index.html index.htm;

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

步骤 4:检查并重启 Nginx

sudo nginx -t           # 检查配置文件语法是否正确
sudo systemctl reload nginx   # 重新加载配置

步骤 5:配置 DNS 解析(域名绑定)

登录 阿里云控制台,将 example.comtest.com 的 A 记录解析到你的 ECS 实例公网 IP。


✅ 使用 Apache 配置虚拟主机

步骤 1:安装 Apache

# CentOS
sudo yum install httpd -y

# Ubuntu
sudo apt install apache2 -y

启动服务:

sudo systemctl start apache2
sudo systemctl enable apache2

步骤 2:创建网站目录

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

步骤 3:创建虚拟主机配置文件

CentOS:

/etc/httpd/conf.d/ 下创建虚拟主机文件:

sudo nano /etc/httpd/conf.d/example.com.conf

内容如下:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
</VirtualHost>

同理创建 test.com.conf

sudo nano /etc/httpd/conf.d/test.com.conf
<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
</VirtualHost>

Ubuntu:

使用 sites-availablesites-enabled 目录:

sudo nano /etc/apache2/sites-available/example.com.conf

内容类似:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
</VirtualHost>

启用站点并禁用默认站点:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

🔒 注意事项

  • 确保防火墙和安全组放行 80/443 端口。
  • 如果使用 HTTPS,需配置 SSL 证书(可使用 Let’s Encrypt 免费证书)。
  • 可以使用宝塔面板简化操作(适合新手)。

🛠️ 可选:使用宝塔面板快速搭建虚拟主机

如果你不熟悉命令行操作,可以安装 宝塔面板 来图形化管理虚拟主机、数据库、FTP 等。

安装方法(以 CentOS 为例):

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成后会提示你访问面板地址,输入账号密码即可开始图形化建站。


如需我帮你生成完整的虚拟主机配置模板,也可以告诉我你的环境(系统 + Web 服务器类型),我可以为你定制一份配置文件。