当前位置:首页 > 行业动态 > 正文

如何创建基于Web站点的虚拟主机?

创建基于web站点的虚拟主机需要配置服务器软件如apache或nginx,并设置域名和文档根目录。

创建基于web站点的虚拟主机是一个复杂但非常有价值的过程,它使得在同一台服务器上运行多个Web站点成为可能,这不仅充分利用了服务器的硬件资源,还显著降低了网站构建及运行成本,本文将详细介绍如何创建基于域名的虚拟主机,包括提供域名解析、准备网页文档、更改配置文件和客户机访问验证等步骤。

如何创建基于Web站点的虚拟主机?  第1张

一、虚拟Web主机

虚拟Web主机是指在同一台服务器中运行多个Web站点,其中每个站点并不独立占用整个服务器,因此被称为“虚拟”Web主机,通过虚拟Web主机服务,可以极大地提高服务器的资源利用率,降低网站构建及运行成本,Apache是最常用的Web服务器软件之一,支持多种类型的虚拟主机配置,包括基于域名、基于IP地址和基于端口的虚拟主机。

二、创建基于域名的虚拟主机

1. 提供域名解析

首先需要向DNS服务提供商注册各虚拟Web站点的域名,以便当访问其中任何一个虚拟Web站点时,最终访问的都是同一个IP地址——实际支撑所有虚拟Web站点的服务器的IP地址,假设我们有两个域名www.wlm.com和www.wat.com,对应的IP地址为20.0.0.58,我们可以将两个域名作为Apache服务的两个虚拟的web站点同时对应一个IP地址20.0.0.58。

2. 准备网页文档

为每个虚拟Web主机准备网站目录及网页文档,分别为每个虚拟Web主机提供包含不同内容的首页文件。

[root@localhost ~]# mkdir -p /var/www/html/wlmcom
[root@localhost ~]# mkdir -p /var/www/html/watcom
[root@localhost opt]# echo "<h1>www.wlm web1</h1>" > /var/www/html/wlm/index.html
[root@localhost opt]# echo "<h1>www.wat web2</h1>" > /var/www/html/wat/index.html

3. 更改配置文件

在Apache服务的主配置文件中,若要启用基于域名的虚拟Web主机,通常需要更改以下两个区域:

虚拟主机区域配置:使用<VirtualHost>监听地址……区域配置,为每一个虚拟Web主机建立独立的配置内容,其中至少应包括虚拟主机的网站名称、网页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可根据实际需要添加。

访问网页根目录的权限配置:使用<Directory>目录位置……区域配置,为每一个虚拟Web主机的网站目录设置访问权限,如允许任何人访问,目录访问可以继承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置。

当虚拟Web主机的数量较多时,建议使用独立的虚拟主机配置文件。

<VirtualHost *:80>           //设置域名 www.wlm.com 虚拟站点区域
    DocumentRoot "/var/www/html/wlm"    //服务访问域名网页的路径
    ServerName www.wlm.com      //服务访问的域名
    ErrorLog "logs/www.wlm.com.error_log"      //错误访问日志存放路径
    CustomLog "logs/www.wel.com.access_log" common      //访问日志存放路径
        <Directory "/var/www/html">        //设置目录访问权限
        Require all granted              //允许所有访问
        </Directory>
</VirtualHost>
<VirtualHost *:80>    //设置域名 www.wat.com 虚拟站点区域。
    DocumentRoot "/var/www/html/wat"    //服务访问域名网页的路径
    ServerName www.wat.com    //服务访问的域名
    ErrorLog "logs/www.wat.com.error_log"     //错误访问日志存放路径
    CustomLog "logs/www.wat.com.access_log" common   //访问日志存放路径
        <Directory "/var/www/html">     //设置目录访问权限
        Require all granted   //允许所有访问
        </Directory>
</VirtualHost>

然后在httpd.conf文件中通过开启“Include conf/extra/httpd-vhosts.conf”加载这些配置,这样可以将对httpd.conf文件的改动减至最少,更方便配置内容的维护。

4. 客户机访问验证

在客户机的hosts文件中加入DNS域名的映射,再在客户机的浏览器中,使用网站名称分别访问不同的域名,能够看到之前设定的网页内容,此时表示基于域名的虚拟主机配置成功,若无法看到此结果,则需要检查两个站点的首页文件,根据上述过程排查配置错误,必要时清空浏览器缓存后重新访问,Linux的hosts文件路径为:/etc/hosts。

20、0.0.58    www.wlm.com      //添加内容
20、0.0.58    www.wat.com

三、FAQs

Q1: 如何在Apache中配置基于IP地址的虚拟主机?

A1: 要配置基于IP地址的虚拟主机,需要在Apache配置文件中为每个虚拟主机指定不同的IP地址。

<VirtualHost 192.168.1.10:80>          //配置监听地址为 192.168.1.10
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test1com"
    ServerName www.test1.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
        <Directory "/var/www/html">
        Require  all granted
        </Directory>
</VirtualHost>

然后重启Apache服务使配置生效。

Q2: 如何在Apache中配置基于端口的虚拟主机?

A2: 要在Apache中配置基于端口的虚拟主机,需要在配置文件中指定不同的TCP端口号。

Listen 80
<VirtualHost *:80>          //配置监听地址和端口  “*” 代表任意地址
    ServerAdmin webmaster@test.com     //管理员邮箱地址       
    DocumentRoot "/var/www/html/test1com"    //指定网站根目录
    ServerName www.test1.com                 //域名
    ServerAlias www.dummy-host.example.com   //别名
    ErrorLog "logs/www.test1.com-error_log"                  //错误日志
    CustomLog "logs/www.test1.com-access_log" common    //访问日志
        <Directory "/var/www/html">     //设置目录访问权限
        Require  all granted    //允许所有
        </Directory>
</VirtualHost>
Listen 8080
<VirtualHost *:8080>         //配置监听地址和端口  “*” 代表任意地址
    ServerAdmin webmaster@test.com     //管理员邮箱地址       
    DocumentRoot "/var/www/html/test2com"    //指定网站根目录
    ServerName www.test2.com                 //域名
    ServerAlias www.dummy-host.example.com   //别名
    ErrorLog "logs/www.test2.com-error_log"                  //错误日志
    CustomLog "logs/www.test2.com-access_log" common    //访问日志
        <Directory "/var/www/html">     //设置目录访问权限
        Require  all granted    //允许所有
        </Directory>
</VirtualHost>

然后重启Apache服务使配置生效。

小编有话说

创建基于web站点的虚拟主机是一项非常实用的技能,它可以帮助我们在同一台服务器上托管多个网站,从而节省成本并提高资源利用率,通过本文的介绍,相信大家对如何创建基于域名的虚拟主机有了更深入的了解,在实际工作中,我们还可以根据具体需求选择基于IP地址或基于端口的虚拟主机配置方式,希望本文能为大家的工作带来帮助!

0