在一台ECS实例中配置多个Web站点,可以有效节约运营成本,便捷管理多个网站(包括更新软件、配置安全设置、备份数据等),根据各个网站的需求变化,可以灵活调整资源分配等。本文介绍如何在Linux系统的ECS实例上使用Nginx搭建多个Web站点。

前提条件

已创建分配公网IP的ECS实例,并部署了LNMP环境,具体操作,请参见手动部署LNMP环境(Alibaba Cloud Linux 3/2、CentOS 7/8)手动部署LNMP环境(Ubuntu)

创建测试站点

  1. 远程连接已部署LNMP环境的ECS实例。
    远程连接方式请参见通过密码或密钥认证登录Linux实例
  2. 运行以下命令,进入已配置好的网站根目录。
cd /usr/share/nginx/html
  1. 运行以下命令,创建两个测试文件夹。
    文件夹中用于存放测试网站信息,即存放项目代码。
sudo mkdir Testpage-1
sudo mkdir Testpage-2
  1. 配置测试站点Testpage-1的信息。
  1. 运行以下命令,进入Testpage-1。
cd /usr/share/nginx/html/Testpage-1/
  1. 运行以下命令,创建并编辑index.html文件。
sudo vim index.html
  1. i进入编辑模式,输入以下测试内容。
Test page 1

编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出。

  1. 配置测试站点Testpage-2的信息。
  1. 运行以下命令,进入Testpage-2
cd /usr/share/nginx/html/Testpage-2/
  1. 运行以下命令,创建并编辑index.html文件。
sudo vim index.html
  1. i进入编辑模式,输入以下测试内容。
Test page 2

编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出。

配置Nginx

  1. 运行以下命令,查看nginx.conf配置文件。
cat /etc/nginx/nginx.conf

http{}模块内,查看include配置信息。

本示例中配置如下图所示,include /etc/nginx/conf.d/*.conf;表示Nginx将会从该路径下的所有.conf文件获取站点信息。

如何在一台Linux云服务器上部署多个站点?_个人网站

  1. 运行以下命令,进入/etc/nginx/conf.d路径下。
cd /etc/nginx/conf.d
  1. 为测试站点Testpage-1创建并配置Nginx配置文件。
  1. 运行以下命令,创建并编辑配置文件。
sudo vim Testpage1.conf
  1. i进入编辑模式,输入以下内容。
    在注释内容处,替换服务器域名参数信息与项目路径参数信息。
server {
    listen       80;
    server_name  testpage1.com;    #此处使用测试域名。实际配置中使用您的服务器域名。

    #charset koi8-r;
    access_log  /var/log/nginx/b.access.log  main;

    location / {
        root   /usr/share/nginx/html/Testpage-1;    #测试站点路径。即您的项目代码路径。
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出。

  1. 为测试站点Testpage-2创建并配置Nginx配置文件。
  1. 运行以下命令,创建并编辑配置文件。
sudo vim Testpage2.conf
  1. i进入编辑模式,输入以下内容。
    在注释内容处,替换服务器域名参数信息与项目路径参数信息。
server {
    listen       80;
    server_name  testpage2.com;    #此处使用测试域名。实际配置中使用您的服务器域名。

    #charset koi8-r;
    access_log  /var/log/nginx/b.access.log  main;

    location / {
        root   /usr/share/nginx/html/Testpage-2;    #测试站点路径。即您的项目代码路径。
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出。

  1. 运行以下命令,重启Nginx服务。
sudo systemctl restart nginx

(可选)本地配置hosts

由于本教程中全部使用的测试信息,因此需要在本地的hosts文件中配置IP映射。如果您在配置多个站点信息时使用的是真实的服务器域名,请忽略该步骤。教程中本地物理机使用Windows操作系统。

  1. 访问C:\Windows\System32\drivers\etc目录。
  2. 复制hosts文件进行备份。
    保留hosts - 副本文件,在测试完成后使用该文件恢复hosts文件的初始状态。
  3. 修改hosts文件。
    在文件末尾追加以下内容。
<ECS实例公网IP> testpage1.com
<ECS实例公网IP> testpage2.com

保存文件并退出。

  1. 返回Windows桌面,并按下Win + R组合键。
  2. 运行对话框中输入cmd,并单击确定
  3. 在命令行中运行以下命令,使hosts配置立即生效。
ipconfig /flushdns

执行结果

在本地主机打开浏览器,成功访问到两个测试站点。

  • 访问testpage1.com/,查看Testpage-1站点内容如下所示。
  • 访问testpage2.com/,查看Testpage-2站点内容如下所示。

至此多个Web站点已搭建成功。在实际搭建站点场景中,您只需要将配置文件中的域名与项目路径配置正确,即可实现多站点的访问。

相关文档

如果您想在一台Windows实例中部署多个Web站点,请参见搭建多个Web站点(Windows)