部署前需完成环境配置检查、资源需求评估、技术方案制定及风险预案准备,确保软硬件兼容性、网络稳定性与安全合规性,为系统顺利上线奠定基础。
部署 Microsoft Internet Information Services (IIS) 是将网站、Web 应用程序或服务发布到互联网或内部网络的关键步骤,IIS 是 Windows Server 操作系统内置的高性能、安全且可扩展的 Web 服务器,以下是详细的部署流程和最佳实践:
-
系统要求确认:
- 操作系统: 确保服务器运行的是受支持的 Windows Server 版本(如 Windows Server 2016, 2019, 2022),IIS 是这些系统的内置角色。
- 硬件资源: 评估预期流量和应用程序需求,确保服务器拥有足够的 CPU、内存(RAM)和磁盘空间(特别是用于日志和网站内容)。
- 网络配置:
- 配置静态 IP 地址。
- 设置正确的子网掩码、默认网关和 DNS 服务器。
- 在防火墙(服务器本身和网络边界)上开放必要的端口(HTTP: 80, HTTPS: 443 是基础,其他端口根据应用需求)。
- 确保域名解析(DNS)已正确指向服务器的公网 IP 地址(如果面向互联网)。
-
环境安全加固:
- 安装所有最新的 Windows Server 安全更新和补丁。
- 禁用或删除不必要的服务和账户。
- 配置强密码策略。
- 考虑使用专用服务账户运行应用程序池(而非高权限账户)。
-
所需材料:
- 网站文件(HTML, ASP.NET, PHP 文件等)。
- 数据库(如 SQL Server, MySQL)及连接字符串(如果适用)。
- SSL/TLS 证书(用于启用 HTTPS,强烈推荐)。
安装 IIS 角色
- 打开服务器管理器: 登录到 Windows Server,默认会自动打开“服务器管理器”,如果未打开,可从“开始”菜单启动。
- 添加角色和功能:
- 在服务器管理器仪表板中,点击“管理” -> “添加角色和功能”。
- “开始之前”页面,点击“下一步”。
- “安装类型”选择“基于角色或基于功能的安装”,点击“下一步”。
- “服务器选择”确认目标服务器已选中,点击“下一步”。
- 选择服务器角色:
- 在“服务器角色”列表中,找到并勾选 Web 服务器 (IIS)。
- 此时会弹出对话框询问是否添加 IIS 管理所需的功能,点击 “添加功能”。
- (可选) 根据网站技术栈需求,展开
Web 服务器 (IIS)
,勾选子角色:- Web 服务器: 核心组件(默认包含)。
- 常见 HTTP 功能: 静态内容、默认文档、目录浏览、HTTP 错误等(通常建议安装)。
- 应用程序开发: 根据网站语言选择(如 ASP.NET, .NET Extensibility, ISAPI Extensions, ISAPI Filters, CGI, 如果使用 PHP 等;Node.js 通常需额外安装)。
- 运行状况和诊断: HTTP 日志记录、请求监视器等(建议安装用于排查问题)。
- 安全性: 基本身份验证、Windows 身份验证、请求筛选、URL 授权等(按需选择)。
- 性能: 静态内容压缩、动态内容压缩(建议启用以优化性能)。
- 管理工具: IIS 管理控制台、IIS 管理脚本和工具(强烈建议安装)。
- 点击“下一步”。
- 功能选择: 通常保持默认即可,除非有特定需求(如 .NET Framework 特定版本),点击“下一步”。
- 确认安装:
- 仔细查看所选内容摘要。
- (重要) 勾选 “如果需要,自动重新启动目标服务器”,因为某些安装可能需要重启。
- 点击“安装”。
- 等待安装完成: 安装过程可能需要几分钟,安装完成后,状态会显示“安装成功”,点击“关闭”。
验证基本 IIS 安装
- 打开 IIS 管理器:
- 在服务器管理器中,点击“工具” -> “Internet Information Services (IIS) 管理器”。
- 或在“开始”菜单中搜索
IIS
并打开。
- 检查默认网站:
- 在左侧连接树中,展开服务器名 -> “站点”,应能看到一个名为
Default Web Site
的站点。
- 在左侧连接树中,展开服务器名 -> “站点”,应能看到一个名为
- 访问默认页:
- 在服务器本机打开浏览器(如 Edge)。
- 访问
http://localhost
或http://127.0.0.1
。 - 如果看到 “IIS 启动页面”(通常显示 IIS 版本和欢迎信息),则表明 IIS 已成功安装并运行。
部署您的网站
- 准备网站内容:
- 将您的网站文件(HTML, CSS, JS, 图片、应用程序文件等)整理到一个文件夹中(
C:\MyWebsite
),确保文件结构正确。
- 将您的网站文件(HTML, CSS, JS, 图片、应用程序文件等)整理到一个文件夹中(
- 创建新网站或应用程序:
- 方法 A: 添加新网站 (推荐用于独立站点)
- 在 IIS 管理器的左侧连接树中,右键点击“站点” -> “添加网站…”。
- 网站名称: 输入一个描述性名称(如
MyCompanyWebsite
)。 - 物理路径: 点击“…”按钮,浏览并选择您存放网站文件的文件夹(如
C:\MyWebsite
),确保运行 IIS 的账户(通常是IIS_IUSRS
组或应用程序池标识)对该文件夹具有 读取 和 执行 权限(右键文件夹 -> 属性 -> 安全 -> 编辑/添加)。 - 绑定:
- 类型:
http
或https
(如果已有证书)。 - IP 地址: 通常选择“全部未分配”或指定服务器的 IP。
- 端口:
80
(HTTP) 或443
(HTTPS),如果使用非标准端口,访客需在 URL 后加端口号(如http://example.com:8080
)。 - 主机名: 如果服务器托管多个网站(基于主机名的虚拟主机),在此输入您的域名(如
www.yourdomain.com
)。留空则匹配所有未指定主机名的请求。
- 类型:
- 点击“确定”。
- 方法 B: 在默认网站下添加应用程序 (推荐用于子应用或虚拟目录)
- 展开“站点”,右键点击
Default Web Site
-> “添加应用程序…”。 - 别名: 输入应用程序在 URL 中的路径部分(如
myapp
,访问地址为http://server/myapp
)。 - 物理路径: 选择您的应用程序文件夹。
- 应用程序池: 可选择现有池或新建一个(见下一步),点击“确定”。
- 展开“站点”,右键点击
- 方法 A: 添加新网站 (推荐用于独立站点)
- 配置应用程序池 (重要):
- 在 IIS 管理器左侧连接树中,点击“应用程序池”。
- 找到您网站或应用程序使用的池(新建网站时会自动创建一个同名池)。
- 右键点击该池 -> “高级设置…”。
- 关键设置:
- .NET CLR 版本: 选择您的应用程序所需的 .NET Framework 版本(如“无托管代码”用于纯静态/PHP,“v4.0”用于 ASP.NET 4.x)。
- 托管管道模式: “集成”模式(推荐,性能更好,与 IIS 集成更紧密)或“经典”模式(旧版 ASP.NET 兼容)。
- 标识: 指定运行工作进程的账户,默认是
ApplicationPoolIdentity
(一个虚拟账户,权限较低,较安全),如需更高权限(如访问特定网络资源),可更改为自定义账户(需谨慎配置权限)。 - 启动模式: “AlwaysRunning”(推荐,提高首次响应速度)。
- 常规 -> 回收: 配置定期回收工作进程以释放内存和解决潜在内存泄漏(如固定时间间隔、特定内存/请求限制后回收)。
- 进程模型 -> 闲置超时(分钟): 设置工作进程在无请求后保持运行的时间(默认为 20 分钟),设为 0 可禁用闲置超时(需权衡资源消耗)。
- 点击“确定”保存设置。
- 设置默认文档:
- 在 IIS 管理器中选择您的网站或应用程序。
- 双击中间功能视图中的“默认文档”。
- 确保您的网站首页文件名(如
index.html
,default.aspx
,index.php
)在列表中,且位于合适位置(可通过右侧操作栏上下移动调整优先级),如果不在,点击右侧“添加…”进行添加。
启用 HTTPS (SSL/TLS) – 安全必备
- 获取证书:
- 从受信任的证书颁发机构 (CA) 购买或申请免费证书(如 Let’s Encrypt)。
- 在服务器上生成证书签名请求 (CSR) 并提交给 CA,或使用自动化工具(如 Certbot for Windows)获取。
- 收到证书文件(通常为
.pfx
或.cer
+ 私钥)后,将其导入服务器的证书存储。
- 在 IIS 中绑定 HTTPS:
- 在 IIS 管理器中选择您的网站。
- 右侧操作栏点击“绑定…”。
- 在“网站绑定”对话框中,点击“添加…”。
- 类型:
https
。 - IP 地址: 同 HTTP 绑定(全部未分配”)。
- 端口:
443
。 - 主机名: 输入您的域名(必须与证书中的域名匹配)。
- SSL 证书: 从下拉列表中选择您导入的证书。
- 点击“确定”,确保 HTTPS 绑定已存在。
- 强制 HTTP 重定向到 HTTPS (推荐):
- 安装 IIS 的“URL 重写”模块(若未安装,需通过“添加角色和功能”或 Web Platform Installer 安装)。
- 在 IIS 管理器中选择您的网站。
- 双击中间功能视图中的“URL 重写”。
- 右侧操作栏点击“添加规则…”。
- 选择“入站规则” -> “空白规则”。
- 名称: 如
Redirect HTTP to HTTPS
。 - 匹配 URL:
- 请求的 URL:
与模式匹配
- 使用:
正则表达式
- 模式:
- 请求的 URL:
- 条件: 点击“添加…”,输入:
- 条件输入:
{HTTPS}
- 检查输入字符串是否:
与模式匹配
- 模式:
^OFF$
(表示 HTTP 请求) - 勾选“忽略大小写”。
- 条件输入:
- 操作:
- 操作类型:
重定向
- 重定向 URL:
https://{HTTP_HOST}{REQUEST_URI}
- 重定向类型:
永久 (301)
- 操作类型:
- 点击“应用”保存规则。
测试与验证
- 本地测试:
- 在服务器上,使用浏览器访问
http://localhost
(或您的网站绑定/IP) 和https://localhost
(或您的网站绑定/IP),检查内容是否正确加载,HTTPS 是否生效(浏览器地址栏应有锁标志)。
- 在服务器上,使用浏览器访问
- 远程测试:
- 从网络内的另一台计算机或通过互联网(如果已配置公网访问),使用域名或服务器 IP 访问您的网站 (
http://yourdomain.com
,https://yourdomain.com
)。 - 验证:
- 内容显示是否正确。
- HTTP 是否成功重定向到 HTTPS。
- HTTPS 连接是否安全(无证书警告)。
- 所有功能(如表单提交、数据库连接)是否正常工作。
- 从网络内的另一台计算机或通过互联网(如果已配置公网访问),使用域名或服务器 IP 访问您的网站 (
- 使用工具:
ping yourdomain.com
: 检查 DNS 解析和基本网络连通性。tracert yourdomain.com
: 跟踪路由。curl -I http://yourdomain.com
/curl -I https://yourdomain.com
: 检查 HTTP 响应头(状态码、重定向、服务器信息等)。- 在线 SSL 检查工具: 如 SSL Labs (https://www.ssllabs.com/ssltest/),全面检测 HTTPS 配置的安全性。
安全加固与优化 (持续进行)
- 权限最小化: 严格限制应用程序池账户和网站文件夹的访问权限(仅授予必要权限)。
- 请求筛选: 在 IIS 中配置请求筛选规则,阻止恶意请求(如特定文件扩展名、HTTP 谓词、URL 序列)。
- 日志记录: 启用并定期检查 IIS 日志(默认位置:
%SystemDrive%\inetpub\logs\LogFiles
),监控访问情况和错误,配置日志滚动策略。 - 更新: 定期更新 Windows Server、IIS、.NET Framework、PHP 以及所有使用的应用程序/框架。
- 防病毒: 在服务器上安装并更新企业级防病毒软件。
- 备份: 定期备份网站内容、数据库、IIS 配置(使用
appcmd
导出或备份%SystemRoot%\System32\inetsrv\config\applicationHost.config
)和服务器系统状态。 - 性能优化:
- 启用静态和动态内容压缩(在 IIS 服务器级或网站级配置)。
- 配置输出缓存(针对静态或可缓存的动态内容)。
- 优化应用程序代码和数据库查询。
- 考虑使用 CDN 分发静态资源。
常见问题排查
- HTTP 错误 403.14 – Forbidden (目录列表被禁用): 未设置默认文档或默认文档不存在/未配置,检查“默认文档”设置和文件是否存在。
- HTTP 错误 404 – Not Found: 请求的文件或路径不存在,检查 URL 拼写、文件路径、物理路径权限。
- HTTP 错误 500 – Internal Server Error: 服务器端应用程序错误,检查 Windows 事件查看器(应用程序和服务日志 -> Microsoft -> Windows -> IIS-*)和 IIS 日志中的详细错误信息,常见原因包括应用程序池崩溃、代码错误、权限不足、模块未安装(如 ASP.NET)。
- 无法启动网站 / 端口冲突: 检查是否有其他程序(如 Skype, Apache)占用了 80 或 443 端口,使用
netstat -ano | findstr :<port>
命令查找占用进程。 - HTTPS 证书警告: 证书不匹配(主机名错误)、证书链不完整(未安装中间证书)、证书过期、或客户端不信任根 CA,使用 SSL Labs 工具诊断。
- 应用程序池频繁回收: 检查应用程序池的回收设置(时间、内存限制)、应用程序是否存在内存泄漏、事件日志中的错误信息。
成功部署 IIS 服务器需要细致的规划、准确的配置和持续的维护,遵循上述步骤,并始终将安全性、性能和可靠性放在首位,您就能建立一个稳定、安全且高效的 Web 服务平台,务必定期审查服务器状态、应用更新并监控日志,以确保最佳运行状态和抵御潜在威胁。
引用说明:
- 本文核心步骤基于 Microsoft 官方 IIS 文档 (https://docs.microsoft.com/en-us/iis) 中关于安装、配置和管理的最佳实践。
- HTTPS 配置和安全建议参考了行业标准(如 OWASP Top 10)和主要证书颁发机构(如 Let’s Encrypt)的指南。
- 性能优化和故障排查方法综合了广泛的系统管理员社区经验和 Microsoft 技术支持知识库。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6360.html