基于FQDN实现Virtuahost

一、虚拟主机

1、什么是虚拟主机

是一种让单一服务器可以运行多个网站或服务的技术。虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。

2、使用虚拟主机的目的

1)方便管理

所有的虚拟主机都在同一部主机中,因此彼此可以共用相同的组态设置,借此节省管理的人力与成本

2)提高性能

相同主机内的虚拟主机可以共用彼此的程序集(Process Pool),因此可以缩短对客户端的回应时间

3)降低成本

虚拟主机使得单一服务器的资源可以被更有效的利用,包括存储器、存储空间或处理器资源。因为通常服务单一网址所需的资源对整部服务器来说相当小,如此可让服务器的资源被更有效的利用。

多个虚拟服务器,可以通过软件架设在同一个实体服务器上,而每个虚拟服务器有可以提供服务器的所有功能,这样相对来说每个虚拟服务器的成本有一定程度的降低。

3、虚拟主机的实现方法
   我们在访问一个网络中的站点时,输入的是域名,而每一个域名对应的是一个IP和端口,所以对于虚拟主机的实现,主要有三种方式

1)基于不同的IP实现不同的虚拟主机

实现过程基于IP的变化

如果你有多个站点的需要被访问的时候,而且使用了这种基于IP地址的,就是一个站点对应一个IP,那势必有点太浪费IP了,而且现在的IPv4已经消耗待尽,每年的使用费也不少啊,当然,土豪公司就不用这么纠结了。

2)基于不同的port实现不同的虚拟主机

实现过程基于端口的变化

网络报文在传输过程中是基于IP+port的,以实现它的唯一性,所以除了变化IP可以实现虚拟主机外,通过端口的变化也是可以实现的。不过在访问互联网是,默认的都是80端口,如果你基于port变化,那别人在访问过程中,还需要输入端口号,这不是画蛇添足吗?不过,你也可以通过URL重写,实现将指定的端口跳到80端口上,这当然就不如这里介绍的第三种方法方便了。

3)基于不同的FQDN实现不同的虚拟主机

实现过程基于ServerName的变化

在网络的访问过程中,当报文到达服务端以后,内核要负责拆掉IP报文的下四层封装,TCP、IP的都要拆掉,然后再交给用户空间的程序,而报文中除了有TCP和IP的封装,还有http的请求首部,请求首部中有一项叫HOST,里面写的就是在浏览器中输入的主机名,因此,我们完全可以通过根据不同的FQDN来实现在单台服务器上提供多个端点。而这种方法也正是目前各IDC们所使用的方法,你个人想要创建一个网站,难道还要买服务器,再托管到机房吗?NO,你所需要做的就是申请一个域名,再到淘宝买一个空间做绑定就可以了,而他们提供给你的,其实就是一个虚拟主机。

二、虚拟主机的实现过程

本次过程基于httpd2.2实现,httpd2.4的实现过程和2.2的稍微有些不一样,它是把虚拟主机的那一项从主配置文件中单独拿出来了,但是实现原理还是一样的,只要开启相应的模块就可以了。虚拟主机在以后的使用过程中还再次会用到的,从此就都以2.4为准了。对于本文中的DNS配置,这里只做配置,不做说明,原理及详细介绍,请参考我的博客中关于DNS系列的博文。

案例说明:www.a.com,www.b.com,www.c.com,三个站点放在同一台服务器上,基于DNS实现

1、为三个站点创建三个区域

2、创建三个站点的区域文件数据库并填写资源记录,三个站点的IP和DNS都相同,只有主机名不同

1)创建a.com的区域文件数据库并填写资源记录

2)创建b.com的区域文件数据库并填写资源记录

3)创建c.com的区域文件数据库并填写资源记录

3、检查DNS是否可以解析三个站点

www.com.com解析成功,另外www.b.com和www.c.com也可以解析成功,这里就不再上图了

4、修改httpd的主配置文件

虚拟主机的实现首先要关闭中心主机,关闭中心主机,只需要把/etc/httpd/conf/httpd.conf中的DocumentRoot注释掉就可以了,这里的这个主配置文件是httpd默认的位置,如果你在安装httpd过程中选择了指定位置,只需要找你的主配置文件就可以了。

1)关闭中心主机

2)配置VirtualHost,在httpd2.2中,NameVirtualHost这一项需启用,而且那个*:80需要和下面的各个VirtualHost中的保持一样,如果是*:80,就都是*:80;如果是IP:80,则都需要是IP:80。在httpd2.4中不需要此项。

5、启动httpd服务和named服务,并检查端口是否已经成功监听

6、测试

1)为了证明实验的有效性和真实性,这里的测试去windows客户端中进行,并把DNS服务器的地址改为刚才配置的服务器的IP地址

2)访问下三个站点试试

三个站点都可以通过DNS解析正常访问,实验成功,OK!

基于FQDN实现Virtuahost

时间: 2024-09-29 02:32:09

基于FQDN实现Virtuahost的相关文章

练习----基于FQDN的虚拟主机设置

1.vim   /etc/httpd/conf.d/vhost1.conf 创建vhost1.conf文件并输入下面内容 <VirtualHost 192.168.1.28:80>ServerName www1.magedu.comDocumentRoot /data/vhosts/www1 CustomLog logs/www1-access_log combined </VirtualHost> 2.vim   /etc/httpd/conf.d/vhost2.conf 创建v

httpd虚拟主机配置及基于用户的访问控制

本文旨在实践httpd虚拟主机及基于用户的访问控制 知识储备 虚拟主机有三种实现方案: 基于ip: 为每个虚拟主机准备至少一个独有ip地址: 基于port: 为每个虚拟主机使用至少一个独有的port: 基于FQDN: 为每个虚拟主机使用至少一个FQDN: 注意:一般虚拟机不要与中心主机混用:因此,要使用虚拟主机,得先禁用'main'主机: 禁用方法:注释中心主机的DocumentRoot指令即可: 基于用户的访问控制: http协议认证方式2种 basic:明文 digest:消息摘要认证 本次

CentOS 7 &nbsp; 基于fastcgi 的lamp

实验环境  CentOS 7, lamp (php-fpm) 要求:(1) 三者分离于三台主机: (2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress: (3) xcache 规划  172.18.105.110 上运行http服务器 172.18.250.157 运行数据库 172.18.253.26 运行php-fpm程序 我提前做好了DNS 两台A记录172.18.105.110 对应的FQDN 为www1.stu05.com  www2.stu05.

基于mod_ssl模块实现httpd对ssl的支持

如果大家在浏览百度.或者Google时不难发现,这些网站都实现了全站https,https相对于http而言,由于增加的ssl隧道传输机制,安全性得到了极大的提升,所以全站https将是未来站点的趋势所在,而httpd默认是不支持https的,由于httpd有着强大的模块支持,这里我们通过httpd众多模块中的一个--mod_ssl来实现https. 我们都知道,http是基于文本协议来传输数据的,默认是使用tcp的80端口对外通信的,而https则不同,https基于二进制格式的协议传输,安全

基于rpm包安装的httpd基础及基本配置

http:hyper text transfer protocol超文本传输协议 一.http简介 我们在浏览网页时,一定见过以html结尾的网页,这里html(hyper text mark language超文本标记语言)是一种编程语言,由html编写出来的文档即为超文本文档. 在早期,http只能传输超文本信息,而不能传输音视频等其他格式的文件,后来http协议中引入了MIME(mutipurpose Internet Mail Extesion)的机制,MIME可以将非文本文件编码成文本

基于RPM包的LAMP搭建

1.     配置概要: a)      172.16.20.10主机运行httpd+php服务(php为模块工作模式) b)      配置两台虚拟主机:wordpress个人博客系统,PHPmyadmin远程控制mysql c)      172.16.20.11主机运行mariadb服务(mysql) 2.     配置流程: a)      首先配置172.16.20.10主机:http服务 i.         安装程序 1.      #yum install httpd php p

CentOS 7中基于rpm包方式安装部署apm(php-fpm) + xcache

CentOS 7, 基于rpm包方式安装部署apm(php-fpm) + xcache:a) httpd, php, mariadb分别部署在一个单独的主机上:b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress:c) 为phpMyAdmim提供https服务: 一.环境配置:关闭防火墙和设置SELinux:使用httpd+FastCGI的方式实现整合:1.php-5.3.3+版本中才能默认实现:2.httpd支持proxy_fcgi_module,默认httpd-2

httpd详解

_3_2HTTPD和http.md #APACHE ##相关概念 URI:统一资源标识符,全局范围内.路径. URL:统一资源定位符. PV:page view 每天页面访问量 UV:user view每天独立IP访问量 超链接:跳转文档 端口: 0-1023:众所周知,永久地分配给固定的应用使用,特权端口: 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/tcp, 11211/tcp: 41952+:客户端程序随机使用的端口,动态端口,或私有端口:

Centos 6 apache httpd 2.2 主要配置详解( 一 )

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Server version: Apache/2.2.15 (Unix) 模块文件路径: /etc/httpd/modules /usr/lib64/httpd/modules 主程序文件: /usr/sbin/httpd /usr/sbin/httpd.work /usr/sbin/httpd.even 主进