虚拟主机(英语:virtual hosting)或称 共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。
其技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。如果划分是系统级别的,则称为虚拟服务器。
Internet上互联有近亿台的计算机,不管它们是什么机型、运行什么操作系统、使用什么软件,都可以归结为两大类:客户机和服务器。
客户机:客户机是访问其它主机的机器。通过ISP(Internet Service Provider,因特网业务提供者)上网时,客户机被分配了一个临时IP地址,利用这个临时IP地址,客户机就可以在Internet的互联网络中获取信息,网络断线后,客户机就脱离了Internet,IP地址也被收回。
服务器:服务器是指那些具有较高计算能力,能够提供给多个用户使用的计算机,通常又称为主机。服务器与客户机的不同点很多,例如客户机在一个时刻通常只为一个用户服务。客户机是通过终端给用户使用的,服务器是通过网络给客户端用户使用的。和客户机相比,服务器需要连续工作在7×24小时的环境。这就意味着服务器需要更多的稳定性技术RAS(Reliability, Availability and Serviceability,可靠性、可用性、适用性),比如支持使用ECC(Error Check and Correction,错误检查和纠正)内存。
虚拟主机技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。
虚拟主机是使用特殊的软硬件技术,把一台真实的物理服务器主机分割成多个逻辑存储单元。每个逻辑单元都没有物理实体,但是每一个逻辑单元都能像真实的物理主机一样在网络上工作,具有单独的IP地址(或共享的IP地址)、独立的域名以及完整的Internet服务器(支持WWW、FTP、E-mail等)功能。
虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,也互不干扰。而各个用户拥有自己的一部分系统资源(IP地址、文档存储空间、内存、CPU等)。各个虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台单独的主机的表现完全相同。所以这种被虚拟化的逻辑主机被形象地称为“虚拟主机”。
费用低廉
相对于购买独立服务器,网站建设的费用大大降低,为普及中小型网站提供了极大便利。
虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。由于多台虚拟主机共享一台真实主机的资源,每个虚拟主机用户承受的硬件费用、网络维护费用、通信线路的费用均大幅度降低。
许多企业建立网站都采用这种方法,这样不仅大大节省了购买机器和租用专线的费用,网站服务器管理简单,诸如软件配置、防病毒、防攻击等安全措施都由专业服务商提供,大大简化了服务器管理的复杂性;同时也不必为使用和维护服务器的技术问题担心,更不必聘用专门的管理人员。
提升效率
网站建设初期,购买服务器到安装操作系统和应用软件需要较长的时间,而租用虚拟主机通常只需要几分钟的时间就可以开通,因为主要的注册域名查询服务商都已经实现了整个业务流程的电子商务化,选择适合自己需要的虚拟主机,在线付款之后马上就可以开通了。
虚拟主机技术的出现,是对Internet技术和网络发展的重大贡献,由于多台虚拟主机共享一台真实主机的资源,大大增加了服务器和通讯线路的利用率,使得一台服务器上能够毫无冲突地配置多个网络IP地址,这意味着人们能够利用虚拟主机把若干个带有单独域名的站点建置在一台服务器上,不必再为建立一个站点而购置单独的服务器和用巨资申请专线作为网络信息出口。
功能限制
某些功能受到服务商的限制,比如可能耗用系统资源的论坛程序、流量统计功能等。网站设计需要考虑服务商提供的功能支持,比如数据库类型、操作系统等。一般虚拟主机为了降低成本没有独立IP地址,就是用IP地址不能直接访问网站(因为同一个IP地址对应有多个网站)
访问速度及流量限制
一台服务器上的不同虚拟主机是各自独立的,并由用户自行管理。但一台服务器主机只能够支持一定数量的虚拟主机,当超过这个数量时,用户将会感到性能急剧下降。
某些虚拟主机网站访问速度过慢,这可能是由于主机提供商将一台主机出租给数量众多的网站,或者服务器配置等方面的原因所造成的,这种状况网站自己无法解决,对于网站的正常访问会产生不利影响;
有些服务商对网站流量有一定限制,这样当网站访问量较大时将无法正常访问。
自主性差
虚拟主机不能由客户随意的安装软件及远程桌面等操作。
方便管理
所有的虚拟主机都在同一部主机中,因此彼此可以共享相同的配置设置,借此节省管理的人力与成本。
提高性能
相同主机内的虚拟主机可以共享彼此的程序集(Process Pool),因此可以缩短对客户端的回应时间。
降低成本
虚拟主机使得单一服务器的资源可以被更有效的利用,包括存储器、存储空间或处理器资源。因为通常服务单一网址所需的资源对整部服务器来说相当小,如此可让服务器的资源被更有效的利用。
多个虚拟服务器,可以通过软件架设在同一个实体服务器上,而每个虚拟服务器有可以提供服务器的所有功能,这样相对来说每个虚拟服务器的成本有一定程度的降低。
实现方式主要有三种:网址名称对应(Name-based)、IP地址对应(IP-based)以及Port端口号对应(Port-based)。
网址名称对应(Name-based)
网址名称对应(Name-based)是借由识别客户端所以提供的网址,决定其所对应的服务,这个方法有效的减少IP地址的占用,但缺点是必须仰赖DNS名称对应服务的支持,若名称对应服务中断,对应此名称的服务也会无法取用。
IP地址对应(IP-based)
IP地址对应(IP-based)是指在同一部服务器上,借由同一份配置设置、不同的IP来管理多个服务。
Port端口号对应(Port-based)
近似于IP地址对应,不过是在同一个IP之下,利用不同的Port端口号来区别不同的服务,藉以快速创建多个虚拟主机。例如:
192.168.0.1:80
192.168.0.1:8080
192.168.0.1:8888
不过这类的应用大多用在私人或实验性质的服务中,原因是用户无法利用默认的端口号(例如Web服务的默认端口号80)取用提供的服务,除非用户知道提供服务的端口号。