IIS配置指南(Web服务器安装配置)

Internet Information Services (IIS) 是一种 Web 服务器应用程序,支持 HTTP、HTTPS、FTP、SMTP 和 NNTP 等协议。通过 IIS,我们可以轻松地将网站托管在本地服务器上,并根据需要配置相应的功能。本文将从多个方面为大家介绍 IIS 的常用配置方法和技巧。

一、安装IIS

IIS 可以使用 Windows Server 和 Windows 桌面操作系统上的“添加角色和功能”向导进行安装。或者也可以使用 PowerShell 命令进行安装。

以下是使用 PowerShell 命令进行 IIS 安装的示例:


Install-WindowsFeature -name Web-Server

请注意,在运行此命令之前,您需要以管理员身份运行 PowerShell 并启用 IIS 所需的 Windows 功能。

二、创建网站

在 IIS 中创建网站的过程很简单。在 IIS 管理工具中,右键单击“网站”节点并选择“添加网站”选项。在弹出的窗口中,您需要输入网站的名称、物理路径、端口号、主机名等信息。

以下是创建网站的代码示例:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 网站名称
$siteName = "MyWebsite"

# 物理路径
$physicalPath = "C:MyWebsite"

# IP 地址
$ipAddress = "*"

# 端口
$port = 80

# 主机名
$hostName = "www.example.com"

# 创建网站
New-WebSite -Name $siteName -PhysicalPath $physicalPath -IpAddress $ipAddress -Port $port -HostHeader $hostName

三、配置 SSL

SSL 是指安全套接字层,可保护网站与客户端之间的通信安全。通过 IIS 可以轻松安装和配置 SSL 证书。

以下是配置 SSL 的示例代码:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 证书的二进制数据
$certData = [System.IO.File]::ReadAllBytes("C:MyCertificate.pfx")

# 证书密码
$certPassword = ConvertTo-SecureString -String "mypassword" -Force -AsPlainText

# 安装证书
$cert = Import-PfxCertificate -CertStoreLocation Cert:LocalMachineMy -Password $certPassword -BinaryValue $certData

# 绑定 SSL 证书
$binding = Get-WebBinding -Name "MyWebsite" | where {$_.Protocol -eq "https"}
$binding.AddSslCertificate($cert.GetCertHashString(), "my")

# 重新启动网站
Restart-WebSite "MyWebsite"

四、配置URL重定向

在 IIS 中配置 URL 重定向可以将用户访问的网址指向其他网址,例如将 http://example.com 重定向到 https://www.example.com。

以下是配置 URL 重定向的示例代码:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 创建重定向规则
Add-WebConfigurationProperty -Filter "//system.webServer" -Name "rewrite" -Value @{
  "globalRules" = @{
    "rule" = @{
      "name"             = "Redirect to www"
      "enabled"          = "true"
      "stopProcessing"   = "true"
      "match"            = @{
        "host" = @{
          "add" = @{
            "value" = "example.com"
          }
        }
      }
      "action"           = @{
        "type"             = "Redirect"
        "url"              = "https://www.example.com/{R:0}"
        "redirectType"     = "Permanent"
        "appendQueryString"= "true"
      }
      "conditions"       = @{
        "add" = @{
          "input"           = "{HTTP_HOST}"
          "pattern"         = "^example.com$"
        }
      }
    }
  }
} -PSPath "MACHINE/WEBROOT/APPHOST/MyWebsite" -Location "MyWebsite"

五、启用静态压缩

启用压缩可以减小网站的带宽占用和页面加载时间。IIS 支持静态文件压缩,并且可以轻松启用和配置。

以下是启用静态文件压缩的示例代码:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 启用静态文件压缩
Set-WebConfigurationProperty -PSPath "MACHINE/WEBROOT/APPHOST/MyWebsite" -Filter 'system.webServer/httpCompression/staticTypes' -Name "." -Value 'text/html,text/plain,text/xml,application/json'

# 修改静态文件压缩的参数
Set-WebConfigurationProperty -filter 'system.webServer/httpCompression' -name 'staticCompressionLevel' -value '9'

# 重启网站
Restart-WebSite "MyWebsite"

六、启用动态缓存

启用动态缓存可以显著提升 Web 应用程序的性能,特别是当应用程序需要频繁地读取和写入数据时。IIS 支持 ASP.NET 动态缓存,可自动缓存页面的输出。

以下是启用 ASP.NET 动态缓存的示例代码:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 启用动态缓存
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/MyWebsite' -filter 'system.web/caching/outputCache' -name 'enabled' -value 'True'

# 配置动态缓存规则
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/MyWebsite' -filter 'system.web/caching/outputCache/profiles' -name '.' -value @{name='MyCacheProfile';duration='00:10:00'}

# 将动态缓存规则添加到页面
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/MyWebsite' -filter 'system.webServer/handlers' -name '.' -value @{name='MyCacheHandler';path='*.aspx';verb='GET';modules='OutputCache';preCondition='managedHandler'}

# 重启网站
Restart-WebSite "MyWebsite"

七、添加HTTP报头

在 IIS 中添加 HTTP 报头可以向客户端返回更多有用的信息,例如缓存控制、安全头、跨域资源共享等。

以下是添加 HTTP 报头的示例代码:


# 导入 IIS PowerShell 模块
import-module WebAdministration

# 添加Cache-Control头
Add-WebConfiguration -pspath "MACHINE/WEBROOT/APPHOST/MyWebsite" -filter "system.webServer/staticContent/clientCache" -value @{cacheControlMode="UseMaxAge"; cacheControlMaxAge="01:00:00"}

# 添加Content-Security-Policy头
Add-WebConfiguration -pspath "MACHINE/WEBROOT/APPHOST/MyWebsite" -filter "system.webServer/httpProtocol/customHeaders" -name "." -value @{name="Content-Security-Policy";value="default-src 'self';"}

# 添加Cors头
Add-WebConfiguration -pspath "MACHINE/WEBROOT/APPHOST/MyWebsite" -filter "system.webServer/httpProtocol/customHeaders" -name "." -value @{name="Access-Control-Allow-Origin";value="*"}
Add-WebConfiguration -pspath "MACHINE/WEBROOT/APPHOST/MyWebsite" -filter "system.webServer/httpProtocol/customHeaders" -name "." -value @{name="Access-Control-Allow-Headers";value="Content-Type"}

# 重启网站
Restart-WebSite "MyWebsite"

八、结束语

本文为大家介绍了 IIS 的常用配置方法和技巧,包括安装 IIS、创建网站、配置 SSL、URL 重定向、启用静态压缩、启用动态缓存、添加 HTTP 报头等。

我们希望本文能为您的 Web 开发工作提供帮助。如果您有任何问题或建议,请随时联系我们。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平