web主机构建的三种方式

一、虚拟web主机的类型

1、虚拟 Web 主机介绍

虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中每一个站点实际 上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可 以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用 httpd 服务可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务 就能够同时支撑大量的 Web 站点。

2、apache服务支持的三种虚拟web主机类型

2.1、基于域名的类型

基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。这是使用最为普遍的虚拟 Web 主机类型。

2.2、基于IP地址的类型

基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。 这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。

2.3、基于端口的类型

基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的 TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

注:因为不同类型的虚拟主机其区分机制各不相同,建议不要同时使用,以免相互混淆。

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

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 主机的数量较多时,建议使用独立的虚拟主机配置文件。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
.......                  //省略部分信息
  //可在此位置手动创建独立的访问目录权限                            
<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.wlm.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 文件的改动减至最少,更方便配置内容的维护。

[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf 
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务
4、客户机访问虚拟的web主机

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

Linux的hosts文件路径为:/etc/hosts  
20.0.0.58    www.wlm.com      //添加内容
20.0.0.58    www.wat.com
window的hosts文件路径为:C:WindowsSystem32driversetchosts
20.0.0.58    www.wlm.com         //添加内容
20.0.0.58    www.wat.com

测试结果显示:
域名为www.wlm.com的测试页

 

 

三、构建基于IP地址的虚拟web主机

构建基于 IP 地址或基于端口的虚拟主机的过程与基于域名的虚拟主机类似,也需要先提供域名解析、准备网页文档,再调整 httpd 配置、重启 httpd 服务,然后在客户 机中访问虚拟主机进行测试。其中最主要的区别是,不同类型的虚拟主机在 httpd.conf 文件中的配置内容略有不同。

对于基于 IP 地址的虚拟主机,每个虚拟 Web 主机各自使用不同的 IP 地址,但是 都通过同一台 httpd 服务器对外提供 Web 浏览服务。正因为如此,用来支撑这些虚拟 Web 主机的服务器也就需要有大量的网络接口,这在实际应用中往往不太方便,所以 基于 IP 地址的虚拟主机并不像基于域名虚拟主机那样应用广泛。

更改httpd.conf文件配置

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
.......                  //省略部分信息
  //可在此位置手动创建独立的访问目录权限                            
<VirtualHost 20.0.0.58>           //基于20.0.0.58IP的虚拟web主机配置
    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 20.0.0.55>    //基于20.0.0.55的虚拟web主机的配置
    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>
[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf 
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务

 

四、构建基于端口的虚拟web主机

基于端口的虚拟主机通常只用于同一个 Web 站点,其针对的网站名称、IP 地址往 往是相同的,但通过不同的 TCP 端口来提供访问不同网页内容的服务入口。在浏览器 中访问非 80 端口的 Web 服务器时,需要明确指出服务器的端口号,如访问 http://www.wat.com:55/或http://20.0.0.58.55/。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
<VirtualHost 20.0.0.58:80>    //基于80端口的虚拟web主机配置
    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 20.0.0.58:55>   //基于55端口的web主机配置
    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>

配置基于端口的虚拟 Web 主机时,要通过多个 Listen 配置项来指定要监听的 TCP 端口号,需要更改httpd.conf配置文件。  

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf   //编辑配置文件
// 使用vim编辑器末行模式/搜索Listen 80服务器默认监听的端口,在其下一行添加配置
.......                  //省略部分信息
Listen 80
Listen 55     //添加监听55端口
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务

  

  

 

  

  

原文地址:https://www.cnblogs.com/tianzhendengni/p/13928807.html