Apache配置多域名访问不同网站

如果在一个服务器上部署多个完全独立的网站,每个网站对应不同的业务,您可以通过修改Apache配置文件来实现多域名访问不同网站,从而充分利用服务器资源,提高管理和运营效率。

前提条件

准备环境

在本文的操作步骤中,示例资源说明如下:

  • 服务器:选用LAMP 7.4镜像创建的轻量应用服务器。

  • 测试网站:共两个,test01test02

  • 测试域名:共两个,test01.example.comtest02.example.com

最终配置完成后,将实现:

  • 访问test01.example.com,获取测试网站test01的信息。

  • 访问test02.example.com,获取测试网站test02的信息。

您在实际操作中,需要将示例资源更换为您自己的资源。

步骤一:创建测试网站

如果您的多个网站代码已保存在服务器的网站根目录下,可以跳过本步骤。

  1. 远程连接LAMP服务器。

    具体操作,请参见远程连接Linux服务器

  2. 运行以下命令,进入网站根目录。

    轻量应用服务器的LAMP应用镜像不同版本中的网站根目录也不同,具体说明如下:

    • LAMP 7.4应用镜像默认的网站根目录为/data/wwwroot/default

    • LAMP 6.1.0应用镜像默认的网站根目录为/home/www/htdocs

    本示例选用的是LAMP 7.4应用镜像,因此命令如下所示:

    cd /data/wwwroot/default
  3. 依次运行以下命令,创建两个子目录。

    子目录用于存放测试网站,即存放网站代码。

    sudo mkdir test01
    sudo mkdir test02
  4. 运行以下命令,进入test01子目录,新建并编辑index.html文件。

    1. 进入test01子目录。

      cd /data/wwwroot/default/test01/
    2. 新建index.html文件。

      sudo vi index.html
    3. i键进入编辑模式,添加以下测试信息。

      Test page 01
    4. 编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出文件。

  5. 运行以下命令,进入test02子目录,新建并编辑index.html文件。

    1. 进入test02子目录。

      cd /data/wwwroot/default/test02/
    2. 新建index.html文件。

      sudo vi index.html
    3. i键进入编辑模式,添加以下测试信息。

      Test page 02
    4. 编辑完成后,按Esc键,并输入:wq后按下回车键,保存并退出文件。

步骤二:修改Apache配置文件

  1. 修改httpd.conf配置文件。

    1. 运行以下命令,打开httpd.conf配置文件。

      sudo vi /usr/local/apache/conf/httpd.conf
    2. i键进入编辑模式,修改配置信息。

      找到以下配置信息:

      # Virtual hosts
      #Include conf/extra/httpd-vhosts.conf

      去掉#Include conf/extra/httpd-vhosts.conf行首的#

      修改完成后,配置文件的信息如下图所示。httpd-vhosts.conf

    3. Esc键,然后输入:wq并按Enter键,保存退出文件。

  2. 修改httpd-vhosts.conf文件。

    1. 运行以下命令,打开httpd-vhosts.conf文件。

      sudo vi /usr/local/apache/conf/extra/httpd-vhosts.conf
    2. i键进入编辑模式,修改配置信息。

      您需要注释掉配置文件中默认的配置信息(即<VirtualHost *:80></VirtualHost>标签中的配置信息),并手动添加您的多个域名的配置信息。

      本示例中,需要进行以下操作:

      1. 如下图所示,注释掉默认配置信息。默认虚拟主机信息

      2. 在文件的末尾添加以下配置信息。

        <VirtualHost *:80>
             DocumentRoot "/data/wwwroot/default/test01"
             ServerName test01.example.com
        </VirtualHost>
        
        <VirtualHost *:80>
             DocumentRoot "/data/wwwroot/default/test02"
             ServerName test02.example.com
        </VirtualHost>

        主要配置信息说明如下所示,您可以根据实际情况自定义配置信息。

        • DocumentRoot :设置网站所在的路径。格式:DocumentRoot "网站路径"

        • ServerName:设置域名。格式:ServerName 您的域名

    3. Esc键,然后输入:wq并按Enter键,保存退出文件。

  3. 运行以下命令,重启Apache服务。

    sudo systemctl restart httpd

步骤三:绑定域名

由于本示例中的两个域名为测试域名,因此需要在本地主机(Windows操作系统)的hosts文件中配置IP映射。

说明

如果您在配置多个站点信息时使用的是真实的域名,请忽略以下操作步骤。您需要为LAMP服务器绑定多个域名。具体操作,请参见绑定并解析域名。成功绑定域名后,即可使用不同的域名访问不同的网站。

  1. 访问C:\Windows\System32\drivers\etc目录。

  2. 复制hosts文件进行备份。

    保留hosts - 副本文件,在测试完成后使用该文件恢复hosts文件的初始状态。

  3. 修改hosts文件。

    在文件末尾追加以下内容。

    <轻量应用服务器公网IP> test01.example.com
    <轻量应用服务器公网IP> test02.example.com
  4. 返回Windows桌面,以管理员身份运行命令提示符。

  5. 在命令提示符窗口中运行以下命令,使hosts配置立即生效。

    ipconfig /flushdns

步骤四:测试访问

在本地主机(Windows操作系统),使用浏览器依次访问两个测试站点。

  • 访问test01.example.com,查看test01站点内容如下所示。test01

  • 访问test02.example.com,查看test02站点内容如下所示。test02

相关文档

您可以为域名设置HTTPS加密访问以较低的成本将数据传输协议从HTTP转换成HTTPS,实现网站的身份验证和数据加密传输,防止数据在传输过程中被篡改或信息泄露。具体操作,请参见: