“默认网站”到底是什么?

“默认网站”到底是什么?

在 IIS 6 和 IIS 7.5 之间(我敢肯定,6 之前的版本也是如此),站点下有一个默认网站。我从未真正质疑过默认网站到底是什么意思。这里的惯例似乎是将所有网站放在默认网站下,所以当你将其他网站放在它下面时,我不禁要问,它有什么“默认”之处。默认网站的目的是保存需要由其下所有网站继承的默认配置,还是有其他用途?换句话说,我什么时候会想将我的新网站添加到站点文件夹而不是默认网站。

仅供参考,我正在将 IIS 6 网站迁移到新服务器,并且将来会使用 IIS 7.5,因此这个问题主要适用于 IIS 7.5。

在此处输入图片描述

答案1

顾名思义,默认网站是在安装 IIS 时创建的便利网站。它可以被删除并被新网站替换,但它的优点是它可以“开箱即用”,所有定义和权限都已处理好。在创建新网站时,获取正确的文件夹和文件权限可能是最令人头疼的事情。

以下是默认网站属性的截图:

默认属性

上述重要属性是:

应用程序池:每个这样的池都只不过是 w3wp.exe 的一个实例,每个池一个(IIS 在负载过大时会启动多个实例)。它在此处以名为 DefaultAppPool 的用户帐户运行,该帐户已获得网站文件夹所需的最低权限。

物理路径:此文件夹将包含网站的所有文件(虚拟文件夹中的文件除外)。默认值为C:\inetpub\wwwroot

绑定:重要的是http:*.80,表示端口 80 上的 HTTP 协议。其他的用于处理 WCF 服务,具体取决于您的 Windows 配置。需要注意的是,只要端口 80 已分配给此站点,就不能分配给其他站点。条目的完整语法是 protocol/IP_address:port:host_header,其中未指定的项目表示“全部”,因此此默认值表示“所有 IP 地址和域名和主机”。

工作原理

IIS 在所有指定端口上侦听采用以下通用格式的 URL 的请求:

protocol://[username:password@]domain[:port]/path/file[?parameters]

然后,请求将转发到处理指定协议、域和端口组合的(一个)站点。未指定的元素有其默认值,或者浏览器在某些情况下可能会要求提供用户名和密码等缺失的元素。

如果指定了路径,则通常以纯文本形式附加到物理路径。例如,http://domain/path/file默认网站的 URL 被转换为C:\inetpub\wwwroot\path\file。如果路径名以指向另一个文件夹的虚拟目录的名称开头,例如D:\myWWWroot,则文件夹路径的前面部分将被替换,这样文件规范将变为D:\myWWWroot\remainder-of-path\file

为什么存在默认网站

它存在的原因很简单,因为在 IIS 中从头开始创建网站时,需要处理太多细节。

我已经提到了文件和文件夹权限,这是为什么当人们确信指定文件存在时,却收到臭名昭著的“HTTP 错误 404.0 - 未找到”消息的主要原因。当应用程序池的用户帐户缺少对生成的物理路径中某个文件夹的权限时,就会出现这种情况。

默认网站接管并应答通过端口 80 到达安装它的计算机的所有 IP 地址的所有 HTTP 请求,将所有 HTTP URL 转换为内部文件的物理路径C:\inetpub\wwwroot

从默认网站开始,根据需要修改其属性,比从头开始创建所有内容要容易得多,尤其是对于对 IIS 7+ 经验不足的人来说。所有必需的用户帐户和权限C:\inetpub 都是预定义的,这一事实可能会避免很多令人困惑的头脑混乱。

这对于安全性也很重要,因为默认情况下 IIS 是相当不易受到黑客攻击的。当不小心修改了默认设置,或者添加了易受攻击的附加产品时,就会产生漏洞。

答案2

默认网站:

  • 在端口 80 上接收请求
  • 不需要特定的主机头

请求http://domain.com/test/hello.aspxwith主机:域在端口 80 上接收,并被发送到“默认网站”。然后,它被路由到根应用程序及其内的根虚拟目录,并且为此请求提供的文件的物理路径变为 c:\inetpub\mysitetesthello.aspx。

定制网站:

  • “MySite”站点也监听所有接口的80端口
  • 仅接收在主机头中指定“mysite”的请求。

请求http://mysite.com/test/hello.aspxhost:mysite 的请求在端口 80 上被接收,并再次被发送到“MySite”。它被路由到根“/”应用程序,但在该应用程序内,它被路由到“/test”虚拟目录,因为http://mysite.com/测试URL 的一部分与虚拟目录的路径相匹配。因此,所提供服务的文件的物理路径变为 c:\inetpubtesthello.aspx。

注意:应用程序池可以通用至默认网站和自定义网站。在此处输入图片描述

希望这可以帮助!

答案3

随着 IIS 7 的发布,围绕这个特定主题实际上发生了相当大的变化,IIS 7 是对 IIS 的完全重新设计和重写。默认网站只是 IIS 服务器上第一个也是最常见的“网站”。确实,您可以将网站放在“默认网站”下,但这些网站实际上是嵌套的“应用程序”。网站映射到特定文件夹,而应用程序通常映射到特定的嵌套子文件夹。

关于这个话题,我有很多话要说。但要回答你眼前的问题,它实际上只是一个名字,“默认”并没有完全体现出你想到的所有含义。至于为什么要创建多个站点而不是在默认站点下创建应用程序,更多的是与绑定有关。例如,“默认网站”使用 http 端口 80,实际上你可能不会经常打开另一个 http 端口来提供网页,因此你的其他网站可能会嵌套在“默认网站”下。就我个人而言,我认为“默认网站”更像是根网站。

iis.net 上有一篇关于这个主题的非常有用的文章,你可能还没有看过了解 IIS 7 上的站点、应用程序和虚拟目录,尽管它一如既往地对具体提到的“默认网站”含糊其辞。

相关内容