虚拟主机原理

虚拟主机

虚拟主机在iis中也叫站点(网站),或应用程序池,是为了在同一台物理机器上运行多个不同的网站,提高资源利用率引入的技术。

虚拟域名 主机头是绑定域名,没有域名不用设置主机头,所谓的主机头的叫法起自IIS中对域名绑定的功能,一般的web服务器一个ip地址的80端口只能正确对应一个网站,处理一个域名的访问请求。而web服务器在不使用多个ip地址和端口的情况下,如果需要支持多个相对独立的网站就需要一种机制来分辨同一个ip地址上的不同网站的请求,这就出现了主机头绑定的方法。简单的说就是,将不同的网站空间对应不同的域名,以连接请求中的域名字段来分发和应答正确的对应空间的文件执行结果。举个例子来说,一台服务器ip地址为192.168.1.10,有两个域名和对应的空间在这台服务器上,使用的都是192.168.1.10的80端口来提供服务。如果只是简单的将两个域名A和B的域名记录解析到这个ip地址,那么web服务器在收到任何请求时反馈的都会是同一个网站的信息,这显然达不到要求。接下来我们使用主机头绑定域名A和B到他们对应的空间文件夹C和D。当含有域名A的web请求信息到达192.168.1.10时,web服务器将执行它对应的空间C中的首页文件,并返回给客户端,含有域名B的web请求信息同理,只不过解释的是空间D的文件。所以在使用主机头绑定功能后就不能使用ip地址访问其上的任何网站了,因为请求信息中不存在域名信息,所以会出错。

 

虚拟目录

虚拟目录对应到URL的名称 如 http://zhidao.baidu.com/question/ 中question就是一个虚拟目录

对于一个网站来说包括主目录(或称宿主目录)和虚拟目录,主目录设置好后,通过域名或ip地址访问默认就是访问主目录里面的东西,例如 http://zhidao.baidu.com 访问的就是主目录下的index.htm页面。
虚拟目录的作用:很多时候,上传的文件多了,架设服务器当初设定的主目录所在盘空间往往就不够了,怎么办?这就需要设置虚拟目录。虚拟目录就是将其他目录以映射的方式虚拟到该FTP服务器的主目录下,这样,一个FTP服务器的主目录实质上就可以包括很多不同盘符、不同路径的目录,而不会受到所在盘空间的限制了。当用户登录到主目录下,还可以根据该账户的权限对它进行相应的操作,就像操作主目录下的子目录一样。如果用户被锁定在主目录下,这项功能将允许他们访问主目录之外的其它目录。

主目录设置的权限如果与虚拟目录的权限发生冲突,则以主目录权限为准。比如主目录设置的权限为读取和写入,而虚拟目录的权限只设置为读取,则其权限将会被主目录权限覆盖掉,自动拥有写入权限。

IIS 支持虚拟目录,通过在“服务器属性”对话框中的“目录”标签可以管理虚拟目录。建立虚拟目录对于管理 WEB 站点具有非常重要的意义。首先,虚拟目录隐藏了有关站点目录结构的重要信息。因为在浏览器中,客户通过选择“查看源代码”,很容易就能获取页面的文件路径信息,如果在 WEB 页中使用物理路径,将暴露有关站点目录的重要信息,这容易导致系统受到攻击。其次,只要两台机器具有相同的虚拟目录,你就可以在不对页面代码做任何改动的情况下,将 WEB 页面从一台机器上移到另一台机器。还有就是,当你将 WEB 页面放置于虚拟目录下后,你可以对目录设置不同的属性,如:Read、Excute、Script。读访问表示将目录内容从 IIS 传递到浏览器。而执行访问则可以使在该目录内执行可执行的文件。当你需要使用 ASP 时,就必须将你存放 .asp 文件的目录设置为“Excute(执行)”。作者建议大家在设置 WEB 站点时,将 HTML 文件同 ASP 文件分开放置在不同的目录下,然后将 HTML 子目录设置为“读”,将 ASP 子目录设置为“执行”,这不仅方便了对 WEB 的管理,而且最重要的提高了 ASP 程序的安全性,防止了程序内容被客户所访问。因为在今年 7 月底的时候 IIS 被一些网络高手发现了一个可怕的 bug,那就是,当你在一个站点的 .asp 文件后加上 ::$DATA 后,客户将能在浏览器中看到该 .asp 文件的所有源代码,这对于一个站点来说是非常可怕的。当然微软已经针对这个 bug,编写了补丁,但是为了彻底杜绝这种可能性的发生,作者还一建议大家不要将 .asp 所在的目录设置为可读。

 

父目录

【转载】我要做个项目,需要通过从localhost中的login.asp中登陆进入。可是当输入正确的登录名和密码后点击确定计算机却没有反应,后来将编辑权限中的启用父路径改为ture后就能用了。如果你不是win7旗舰可能打开方法就不一样了你可以试一下这个方法:

打开IIS管理器,找到Web目录,右键“属性”在“主目录”选项卡下点击“配置”打开“应用程序配置” 窗 口,单击“选项”标签,勾选“应用程序配置”下的“启用IIS父路径”即可。

为安全考虑,IIS6.0版本中出现了一个父路径功能,初始安装时是没有打开的,如果你的网站程序使用了父路径,如../conn.asp这样的,..表示上层目录,就一定要开启父路径,否则系统不能正常识别..父路径,网页就无法正常显示。
例如:
      
这条语句,当 IIS 启用父路径时,这条语句可以正常使用,而当 IIS 停用父路径时,这条语句无法使用。

还有编辑权限中的将错误发送到浏览器,也要改为ture,这样有利于知道自己的错误及时改正错误。

 

你可能感兴趣的:(网站)