专利名称:虚拟机提供Web服务的方法、虚拟机监控器与系统的制作方法
技术领域:
本发明涉及互联网技术领域,特别地,涉及一种虚拟机提供Web服务的方法、虚拟机监控器与虚拟机系统。
背景技术:
随着虚拟化技术的发展,虚拟机得到了广泛的应用,出现了用虚拟机来代替物理主机做Web服务器的应用需求。但在现实应用中,一台刀片服务器上往往创建了多台虚拟机,如果给每台虚拟机都配置一个公网IP地址,在IPV4地址严重短缺的情况下会造成极大的浪费,因此,为了充分利用有效的IP地址资源,考虑采用在虚拟机中配置私有地址,共享单一公有IP地址方式来提供虚拟机的Web服务,但这必然面临当用户向虚拟机的Web服务器发起HTTP请求时,由于虚拟机上的Web服务器都使用了 80目标端口及同样的对外公网IP,无法定位到特定的虚拟机Web服务上的问题,因此也无法直接使用NAT(NetWOrkAddressTranslation,网络地址转换)技术来解决这个问题。
发明内容
本发明要解决的一个技术问题是提供一种虚拟机提供Web服务的方法、虚拟机监控器与虚拟机系统,能够使一台服务器上的各虚拟机在共享一个公有IP地址的情况下提供Web服务。根据本发明的一方面,提出了一种虚拟机提供Web服务的方法,包括虚拟机监控器接收HTTP请求包,HTTP请求包中携带待访问的虚拟机域名;根据预设的虚拟机域名与私有地址之间的映射关系将待访问的虚拟机域名解析为待访问的虚拟机私有地址;根据待访问的虚拟机私有地址访问对应虚拟机上的Web服务。根据本发明的另一方面,还提出了一种虚拟机监控器,包括请求接收单元,用于接收HTTP请求包,HTTP请求包中携带待访问的虚拟机域名;网络地址转换单元,与请求接收单元相连,用于根据预设的虚拟机域名与私有地址之间的映射关系将待访问的虚拟机域名解析为待访问的虚拟机私有地址;Web服务访问单元,与网络地址转换单元相连,用于根据待访问的虚拟机私有地址访问对应虚拟机上的Web服务。根据本发明的又一方面,还提出了一种虚拟机系统,包括虚拟机监控器和多个虚拟机,其中,每个虚拟机,与虚拟机监控器相连,用于接收来自虚拟机监控器的Web访问请求,并将网页内容返回给用户。本发明提供的虚拟机提供Web服务的方法、虚拟机监控器与虚拟机系统,在多个虚拟机共享一个公有IP地址的情况下,通过虚拟机域名与私有地址之间的映射关系,将各虚拟机域名分别映射到不同虚拟机上,从而实现了对不同虚拟机的访问。本发明具有部署简单和高可用性的特点,能够有效解决目前IPV4地址枯竭带来的问题。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中:图1是本发明虚拟机提供Web服务的方法的一个实施例的流程示意图。图2是本发明虚拟机提供Web服务的方法的另一实施例的流程示意图。图3是本发明虚拟机提供Web服务的方法的又一实施例的流程示意图。图4是本发明虚拟机监控器的一个实施例的结构示意图。图5是本发明虚拟机系统的一个实施例的结构示意图。图6是本发明虚拟机系统的另一实施例的结构示意图。
具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。本发明的下述实施例对原有虚拟机架构进行了改造,在VMM (Virtual MachineMonitor,虚拟机监控器)层中增加了一层应用层NAT,用于维护虚拟机私有地址和虚拟机域名之间的映射关系,这样这些创建的VMM上的虚拟机就可以通过共享一个VMM的公有地址(例如,IPv4地址)来提供Web服务。图1是本发明虚拟机提供Web服务的方法的一个实施例的流程示意图。如图1所示,可以包括以下步骤:S102,虚拟机监控器接收HTTP请求包,HTTP请求包中携带待访问的虚拟机域名;S104,虚拟机监控器根据预设的虚拟机域名与私有地址之间的映射关系将待访问的虚拟机域名解析为待访问的虚拟机私有地址;S106,虚拟机监控器根据待访问的虚拟机私有地址访问对应虚拟机上的Web服务。该实施例在多个虚拟机共享一个公有IP地址的情况下,通过虚拟机域名与私有地址之间的映射关系,将各虚拟机域名分别映射到不同虚拟机上,从而实现了对不同虚拟机的访问。本发明具有部署简单和高可用性的特点,能够有效解决目前IPV4地址枯竭带来的问题。图2是本发明虚拟机提供Web服务的方法的另一实施例的流程示意图。如图2所示,可以包括以下步骤:S202, DNS (Domain Name System,域名系统)服务器接收DNS请求,请求中包含待访问的虚拟机域名;S204, DNS服务器根据预设的虚拟机域名与公有地址之间的映射关系将待访问的虚拟机域名解析为虚拟机监控器的公有地址;S206, DNS服务器利用虚拟机监控器的公有地址向虚拟机监控器发起HTTP请求包;S208,虚拟机监控器接收HTTP请求包,HTTP请求包中携带待访问的虚拟机域名;S210,虚拟机监控器根据预设的虚拟机域名与私有地址之间的映射关系将待访问的虚拟机域名解析为待访问的虚拟机私有地址;S212,虚拟机监控器根据待访问的虚拟机私有地址访问对应虚拟机上的Web服务。进一步地,在S212之后,被访问的虚拟机将网页内容返回给用户。图3是本发明虚拟机提供Web服务的方法的又一实施例的流程示意图。如图3所示,可以包括以下步骤:S302,当外部用户通过浏览器访问虚拟机的Web服务时,首先向DNS服务器发起一个DNS请求,该请求中包含了提供Web服务的虚拟机域名;S304,DNS服务器根据预先设置的虚拟机监控器的公有IP地址与虚拟机域名之间的映射关系将所有虚拟机上的域名都解析为该VMM的公网IPv4地址,并向用户返回VMM的公网IPv4地址;S306,构造HTTP请求包,该请求包中携带Host属性,值为需要访问的虚拟机的域名,再将该HTTP请求包发送到VMM ;S308,VMM通过NAT检查虚拟机域名与虚拟机私有IP地址之间的映射关系,根据虚拟机域名将目标地址改为虚拟机的私有地址;其中,NAT层地址映射表如下述表I所示:`
权利要求
1.一种虚拟机提供Web服务的方法,其特征在于,包括: 虚拟机监控器接收HTTP请求包,所述HTTP请求包中携带待访问的虚拟机域名;根据预设的虚拟机域名与私有地址之间的映射关系将所述待访问的虚拟机域名解析为待访问的虚拟机私有地址; 根据所述待访问的虚拟机私有地址访问对应虚拟机上的Web服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: DNS服务器接收DNS请求,所述请求中包含所述待访问的虚拟机域名; 根据预设的虚拟机域名与公有地址之间的映射关系将所述待访问的虚拟机域名解析为虚拟机监控器的公有地址; 利用所述虚拟机监控器的公有地址向所述虚拟机监控器发起所述HTTP请求包。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 对应虚拟机将网页内容返回给用户。
4.一种虚拟机监控器,其特征在于,包括: 请求接收单元,用于接收HTTP请求包,所述HTTP请求包中携带待访问的虚拟机域名;网络地址转换单元,与所述请求接收单元相连,用于根据预设的虚拟机域名与私有地址之间的映射关系将所述待访问的虚拟机域名解析为待访问的虚拟机私有地址; Web服务访问单元,与所述网络地址转换单元相连,用于根据所述待访问的虚拟机私有地址访问对应虚拟机上的Web服务。
5.一种虚拟机系统,其特征在于,包括权利要求4所述的虚拟机监控器和多个虚拟机,其中, 每个虚拟机,与所述虚拟机监控器相连,用于接收来自所述虚拟机监控器的Web访问请求,并将网页内容返回给用户。
6.根据权利要求5所述的虚拟机系统,其特征在于,所述系统还包括: DNS服务器,与所述虚拟机监控器互通,用于接收DNS请求,所述请求中包含所述待访问的虚拟机域名,根据预设的虚拟机域名与公有地址之间的映射关系将所述待访问的虚拟机域名解析为虚拟机监控器的公有地址,利用所述虚拟机监控器的公有地址向所述虚拟机监控器发起所述HTTP请求包。
全文摘要
本发明公开了一种虚拟机提供Web服务的方法、虚拟机监控器与虚拟机系统,其中,该方法包括虚拟机监控器接收HTTP请求包,HTTP请求包中携带待访问的虚拟机域名;根据预设的虚拟机域名与私有地址之间的映射关系将待访问的虚拟机域名解析为待访问的虚拟机私有地址;根据待访问的虚拟机私有地址访问对应虚拟机上的Web服务。本发明在多个虚拟机共享一个公有IP地址的情况下,通过虚拟机域名与私有地址之间的映射关系,将各虚拟机域名分别映射到不同虚拟机上,从而实现了对不同虚拟机的访问。本发明具有部署简单和高可用性的特点,能够有效解决目前IPV4地址枯竭带来的问题。
文档编号H04L29/12GK103167006SQ20111042702
公开日2013年6月19日 申请日期2011年12月19日 优先权日2011年12月19日
发明者吴伟, 毛东峰, 杨国良, 丁圣勇, 刘广义, 黄志兰 申请人:中国电信股份有限公司