介绍 IIS 7.5 的应用程序池与新增的「虚拟帐户」特性
IIS 7.5 引入了许多新的特性,其中包括应用程序池和虚拟帐户。在本文中,我们将介绍应用程序池和虚拟帐户这两个关键特性的详细信息,并提供一些示例,以帮助你更好地了解它们。
- 应用程序池:
IIS 7.5 中的应用程序池是一种将网站隔离开来的机制,可以实现更好的性能和可靠性,而且还能够在服务器上运行多个应用程序。每个应用程序池都有其自己的一组应用程序和配置文件,并且可以单独进行监视和管理。这样,在某个应用程序崩溃或遇到某些问题时,其它应用程序不会受到影响。应用程序池还可以针对不同的 Web 应用程序进行优化,以获取更佳的性能。
例如,我们可以创建一个名为 “myapp” 的应用程序池,然后将多个网站部署到此应用程序池中。这些网站本身可能属于不同的开发团队或端口,并且拥有不同的安全要求。使用应用程序池可以将这些网站隔离开来,并为每个网站单独配置一组性能参数,以确保所有网站在运行时都会表现最佳。
- 虚拟帐户:
IIS 7.5 中还引入了一种名为 “虚拟帐户” 的新功能。虚拟帐户是一种无需为其创建 Windows 帐户的帐户。这种帐户可以用来作为应用程序池运行时使用的安全标识,并可以访问其需要的应用程序和配置文件。此外,虚拟帐户还可以用于访问外部资源,例如网络共享或数据库。
例如,我们可以为应用程序池 “myapp” 创建一个虚拟帐户 “myappuser”,并在应用程序中使用它来进行身份验证和访问本地文件。在此过程中,即使是由应用程序池运行的任何进程,也不需要拥有“myappuser”帐户的有效凭据。这是因为 “myappuser” 帐户是虚拟的,并且只与应用程序池相关联。
现在,让我们看两个简单的示例,以更好地理解这两个特性的使用方法:
示例 1:创建应用程序池 “myapp” 并将其关联到 Web 应用程序 “myapp.com”
# 创建应用程序池
New-WebAppPool -Name myapp
# 配置应用程序池
Set-ItemProperty IIS:\AppPools\myapp -Name "managedRuntimeVersion" -Value "v4.0"
Set-ItemProperty IIS:\AppPools\myapp -Name "managedPipelineMode" -Value 1
Set-ItemProperty IIS:\AppPools\myapp -Name "cpu" -Value 5
Set-ItemProperty IIS:\AppPools\myapp -Name "processModel.identityType" -Value "ApplicationPoolIdentity"
# 创建网站
New-Website -Name "myapp.com" -Port 80 -IPAddress * -PhysicalPath "C:\inetpub\wwwroot\myapp" -ApplicationPool "myapp"
在此示例中,我们创建了一个名为 “myapp” 的应用程序池,并将其配置为使用 .NET Framework 4.0,并以“经典”模式运行。我们还将 CPU 配置为 5%,以确保该应用程序池不会过度占用系统资源。最后,我们在 “C:\inetpub\wwwroot\myapp” 文件夹中创建了一个名为 “myapp.com”的网站,并将其关联到 “myapp” 应用程序池中。
示例 2:使用虚拟帐户,“myappuser” 运行应用程序池中的应用程序:
# 为应用程序池 “myapp” 创建虚拟帐户
$appPool = Get-Item IIS:\AppPools\myapp
$appPool.processModel.userName = "myappuser"
$appPool.processModel.password = ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force
$appPool | Set-Item
# 设置 myappuser 帐户的权限
icacls "C:\inetpub\wwwroot\myapp" /grant "myappuser":(OI)(CI)F
# 在应用程序池中设置应用程序的安全标识
Set-ItemProperty "IIS:\Sites\myapp.com\myapp" -Name "ApplicationPoolIdentity" -Value "myapp"
在此示例中,我们为应用程序池 “myapp” 创建了一个名为 “myappuser” 的虚拟帐户,并将其用作此应用程序池中所有应用程序的安全标识。我们还将此虚拟帐户的权限配置为具有文件和文件夹的包括访问权限。最后,我们将应用程序池的安全标识设置为“myapp” 应用程序,以确保该应用程序使用 “myappuser” 作为其安全标识。
总结:
通过本文,我们了解了 IIS 7.5 中的应用程序池和虚拟帐户特性,并学习了如何使用它们来提高性能、安全性和可靠性。当你正在设计和实现 Web 应用程序时,这些特性将非常有用,并可以避免许多安全漏洞和性能问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:介绍 IIS 7.5 的应用程序池与新增的「虚拟帐户」特性 - Python技术站