在 IIS 上生成静态网站
作者:Keith Newman 和 Robert McMurray
本文档将指导你完成安装 IIS Web 服务器并将其配置为提供静态内容的过程。 静态内容是完全按照其存储时的样子提供给用户的网页 (HTML)。 相反,动态内容由 Web 应用程序(如 ASP.NET、经典 ASP 或 PHP 应用程序)生成。 静态内容对所有用户显示相同的信息;动态内容可显示特定于用户的信息(例如用户名)。
静态内容 Web 服务器是用于支持 HTML 网站的最基本的 IIS 配置。 你可以使用静态内容 Web 服务器托管内部或外部(公共)网站。 当安装 IIS 8 时,默认安装会提供支持静态内容 Web 服务器所需要的所有 IIS 模块。 默认安装包括为静态 HTML 文件、文档和图像提供服务的功能。 IIS 8 支持默认文档、目录浏览、日志记录和静态内容服务器的匿名身份验证。
先决条件
若要充分利用本教程,你必须具有对运行以下操作系统之一的计算机的访问权限:
- Windows Server® 2012
- Windows® 8
步骤 1:安装 IIS Web 服务器
可以使用 Windows 用户界面(UI)或命令行执行此过程。
使用 UI 在 Windows Server 2012 上安装 IIS
在“开始”页面上,单击“服务器管理器”磁贴,然后单击“确定”。
在“服务器管理器”中,选择“仪表板”,然后单击“添加角色和功能”。
在“添加角色和功能向导”中的“开始之前”页面上,单击“下一步”。
在“选择安装类型”页上,选择“基于角色或功能的安装”,然后单击“下一步”。
在 选择目标服务器 页上,选择 从服务器池中选择一个服务器,选择您的计算机名称,然后单击 下一步。
在“选择服务器角色” 页上,选择“Web 服务器 (IIS)”,然后单击“下一步”。
在“选择功能”页上,请注意预先选择的功能,然后单击“下一步”。
在“Web 服务器角色 (IIS)”页面上,单击“下一步”。
在“选择角色服务”页面上,注意预先选择的角色服务,然后单击“下一步”。
注意
为静态内容 Web 服务器安装 IIS 8 默认角色服务。
在“确认安装选择”页上,确认你的选择,然后单击“安装”。
在“安装进度”页上,确认已成功完成 Web 服务器 (IIS) 角色和所需角色服务的安装,然后单击“关闭”。
若要验证已成功安装 IIS,输入以下命令到 web 浏览器中:
http://localhost
你将看到默认的 IIS“欢迎使用”页面。
使用 UI 在 Windows 8 上安装 IIS
在“开始” 页上,键入“控制面板” ,然后单击搜索结果中的“控制面板” 图标。
在“控制面板” 中,单击“程序” ,然后单击“打开或关闭 Windows 功能” 。
在“Windows 功能”对话框中,单击“Internet Information Services”,然后单击“确定”。
此操作将安装 IIS 8 默认功能。 仅安装用于静态内容 Web 服务器的默认功能。
若要验证已成功安装 IIS,输入以下命令到 web 浏览器中:
http://localhost
你将看到默认的 IIS“欢迎使用”页面。
使用命令行安装 IIS
在提升的命令提示符下或在脚本中输入以下命令:
Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
步骤 2:添加网站
本步骤将告诉你如何通过使用 IIS 管理器 UI 或通过在命令行窗口中运行 Appcmd.exe 命令来将网站添加到 IIS。
使用 UI 添加网站
打开 IIS 管理器。
- 对于 Windows Server 2012,在“开始”页面上,单击“服务器管理器”磁贴,然后单击“确定”。 在“服务器管理器”中,单击“工具”菜单,然后单击“Internet Information Services (IIS) 管理器”。
- 对于 Windows 8,在“开始”页上,键入“控制面板”,然后单击搜索结果中的“控制面板”图标。 在“控制面板” 屏幕上,依次单击“系统和安全” 、“管理工具” 和“Internet Information Services (IIS) Manager” 。
在“连接” 窗格中,右键单击树中的“站点” 节点,然后单击“添加网站” 。
在“添加网站”对话框中,在“站点名称”框中为你的网站输入一个易记名称。
如果要选择其他应用程序池,而不是“应用程序池” 框中列出的应用程序池,请单击“选择” 。 在“选择应用程序池” 对话框中,从“应用程序池” 列表中选择一个应用程序池,然后单击“确定” 。
在“物理路径”框中,输入网站的文件夹的物理路径或单击浏览按钮 (...)来导航文件系统,以找到该文件夹。
如果你在上一步骤中输入的物理路径指向远程共享,请单击“连接身份”,以指定有权访问该路径的凭据。 如果不使用特定凭据,请选择“连接身份” 对话框中的“应用程序用户(传递身份验证)” 选项。
从“类型” 列表中为网站选择协议。
。 如果必须为网站指定静态 IP 地址(默认情况下,将此项设置为“全部未分配”),请在“IP 地址”框中输入 IP 地址。
在“端口”文本框中输入端口号。
(可选)在“主机头”框中为网站输入主机头名称。
如果无需对站点进行任何更改,并且你希望该网站立即可用,请选中“立即启动网站” 复选框。
单击“确定”。
使用命令行添加网站
在提升的命令提示符下或在脚本中使用以下语法:
appcmd add site /name:
string /id:
uint /physicalPath:
string string /bindings:
注意
若要使此语法有效,你必须位于以下目录中,或者在你的路径中包含该目录:%windir%\system32\inetsrv
。
变量 name
是名称,而变量 id
是要分配给站点的正整数。 变量 name
和 id
是使用 appcmd 添加网站时仅有的两个必需变量。 但是,当你在未指定 bindings
和 physicalPath
属性的值的情况下添加站点时,该站点将无法启动。
变量 physicalPath
是文件系统中站点内容的绝对路径。
变量 bindings
包含用于访问该站点的信息。 它必须采用 protocol/IP_Address:port:hostheader
格式。 例如,对于网站,绑定 http/*:85:
会将站点配置为在端口 85 上侦听针对所有 IP 地址和域名(也称为主机头或主机名)的 HTTP 请求。 另一方面,绑定 http/*:85:marketing.contoso.com
会将网站配置为在端口 85 上侦听针对所有 IP 地址和域名 (marketing.contoso.com) 的 HTTP 请求。
若要添加名为 contoso、ID 为 2 的网站,且该网站包含 c:\contoso
中的内容并可在端口 85 上侦听针对所有 IP 地址和域名 (marketing.contoso.com) 的 HTTP 请求,请在命令提示符下输入以下内容:
appcmd add site /name:contoso /id:2 /physicalPath:c:\contoso /bindings:http/*:85:marketing.contoso.com
步骤 3:配置匿名身份验证
匿名身份验证会在不提示用户输入用户名或密码的情况下为其提供对你的网站的公共区域的访问权限。 你可以使用默认的匿名用户帐户 (IUSR) 配置匿名身份验证,或者为匿名用户设置本地用户帐户。
使用 UI 配置匿名身份验证
在 IIS 管理器的“功能视图”中,双击“身份验证”。
在“身份验证”页,选择“匿名身份验证”。
在“操作”窗格中,单击“编辑”,以设置匿名用户用于连接至站点的安全主体(用户凭据)。
在“编辑匿名身份验证凭据”对话框中,选择以下选项之一:
如果要配置 IIS 用于访问你的站点或应用程序的特定用户帐户,请选择“特定用户”。 然后单击“设置”以打开“设置凭据”对话框,并输入标识的用户名和密码。 。
如果你希望使用当前在属性页上为应用程序池指定的帐户运行 IIS 进程,请选择“应用程序池标识”。 默认情况下,此标识为 IUSR 帐户。
重要
如果你使用 IUSR 帐户,则会向匿名帐户授予与该帐户相关联的所有内部网络访问权限。
单击“确定”以关闭“编辑匿名身份验证凭据”对话框。
使用命令行配置匿名身份验证
使用以下语法更改用于匿名访问的默认帐户:
appcmd set config /section:anonymousAuthentication /userName:
字符串 /password:
变量 username
是 IIS 用于匿名身份验证的帐户,变量 password
是默认情况下已在配置文件中加密的密码。 例如,若要在匿名访问中使用名为 Moe 的帐户和 pssword1 密码,请在命令提示符下输入以下内容:
appcmd set config /section:anonymousAuthentication /userName:Moe /password:pssword1
步骤 4:配置默认文档
当发送给你的网站的客户端请求不包含文档名称时,IIS 将查找其名称定义为默认文档的文件。 通常,默认文档名称是 Default.htm。 你可以按优先顺序定义默认文档名称的列表。
使用 UI 配置默认文档
- 在 IIS 管理器的“功能视图”中,双击“默认文档”。
- 在“操作”窗格中,单击“添加”。
- 在“名称”框中,输入想要添加到默认文档列表的文件名,然后单击“确定”。 此文件名将添加到默认文档列表的顶部。
- (可选)在列表中选择一个默认文档,然后通过在“操作”窗格中单击“上移”或“下移”来更改该文件的优先级。
- (可选)在列表中选择一个默认文档,然后通过在“操作”窗格中单击“删除”来删除任何不想用作默认文档的文件名。
使用命令行配置默认文档
若要将文件名添加到默认文档列表,请使用以下语法:
appcmd set config /section:defaultDocument /+files.[value='
字符串']
变量 string 是想要添加到该列表中的文件名。 例如,若要将名为 home.html 的文件添加到默认文档列表,请在命令提示符下输入以下内容:
appcmd set config /section:defaultDocument /+files.[value='home.html']
若要从默认文档列表中删除名为 home.html 的文件,请在命令提示符下输入以下内容,然后按 ENTER:
appcmd set config /section:defaultDocument /-files.[value='home.html']
步骤 5:配置静态内容压缩
你可以选择配置 Web 服务器,以便更有效地根据用户带宽压缩静态内容,并提高网站的性能。
使用 UI 配置静态内容压缩
在 IIS 管理器的“功能视图”中,双击“压缩”。
选择“启用静态内容压缩”将 IIS 配置为压缩静态内容。
在“静态压缩”框中,配置以下设置:
- (可选)选择“仅压缩大于以下值的文件(以字节为单位)”,并输入要让 IIS 压缩的最小文件大小。 默认大小为 256 个字节。
- 在“缓存目录”文本框中,输入本地目录的路径,或单击浏览按钮 (...) 来查找目录。 静态文件在压缩之后将缓存在此临时目录中,直至过期或内容发生更改。 此临时目录必须位于 NTFS 格式的分区的本地驱动器上。 此目录不能压缩,且不应共享。
- (可选)选择“每个应用程序池的磁盘空间限制 (MB)”,然后输入你希望 IIS 在压缩静态内容时使用的每个应用程序池的最大空间量(以 MB 为单位)。 例如,如果服务器上存在 20 个应用程序池,并且“磁盘空间限制”设置为 100,则最大磁盘空间将是 2 GB。 如果单击“每个应用程序池的磁盘空间限制 (MB)”选项并在它下面的文本框中输入一个数字,则当达到该设置的限制时,IIS 将自动根据最近最少使用的规则清空临时目录。 每个应用程序池的默认值为 100 MB。
在“操作”窗格中,单击“应用”。
使用命令行配置静态内容压缩
若要启用静态内容的 HTTP 压缩,请在命令提示符下输入以下命令,然后按 Enter:
appcmd set config /section:urlCompression /doStaticCompression:True
若要配置静态内容压缩设置,请使用以下语法:
appcmd set config /section:urlCompression /minFileSizeforComp:
int /directory:
字符串 /maxDiskSpace:
int
变量 minFileSizeforComp
用于设置文件在压缩时必须包含的最小字节数。 默认值为 256。 变量 directory
用于指定临时存储和缓存的压缩版本静态文件的目录。 默认值为以下文件夹:
%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files
变量 maxDiskSpace
用于设置你希望 IIS 在压缩静态内容时使用的每个应用程序池的最大空间量(以 MB 为单位)。 每个应用程序池的默认值为 100 MB。
后续步骤
全面测试你的网站,以确保它按预期方式运行。 然后考虑配置以下功能:
- 若要帮助你对 Web 服务器的性能进行故障排除或优化,请设置 IIS 日志记录。 有关说明,请参阅 Configure Logging in IIS。
- 若要提高 Web 服务器的安全性,请配置请求筛选。 有关说明,请参阅 Configure Request Filtering in IIS。