一、环境准备与IIS安装
1.1 系统兼容性检查
IIS(Internet Information Services)作为Windows原生Web服务组件,支持从Windows Server到个人操作系统的全版本部署。推荐使用Windows Server 2016/2019/2022作为生产环境,Windows 10/11适用于开发测试场景。需注意:
- 家庭版系统不支持IIS完整功能
- 服务器版需至少4GB内存(建议8GB+)
- 磁盘空间预留10GB以上(含日志存储)
1.2 安装流程详解
Windows Server系统
- 打开”服务器管理器”(Server Manager)
- 选择”添加角色和功能”(Add Roles and Features)
- 在”服务器角色”(Server Roles)中勾选:
- Web服务器(IIS)
- 包含管理工具的完整安装包
- 在”功能”(Features)中确保勾选:
- .NET Framework 4.8(如需ASP.NET支持)
- 性能计数器(用于监控)
Windows 10/11系统
- 通过控制面板进入”程序和功能”
- 点击”启用或关闭Windows功能”
- 展开”Internet Information Services”节点,建议勾选:
- FTP服务(如需文件传输)
- WebDAV发布(如需远程管理)
- 应用程序开发功能(含ASP.NET支持)
验证安装:安装完成后无需重启,在浏览器访问http://localhost,出现IIS默认欢迎页即表示成功。若显示404错误,需检查防火墙是否放行80端口。
二、网站文件结构规划
2.1 目录规范设计
建议采用以下标准目录结构:
D:\MyWebsite\├── assets/ # 静态资源│ ├── css/ # 样式文件│ ├── js/ # 脚本文件│ └── media/ # 图片/视频├── pages/ # 动态页面├── config/ # 配置文件└── logs/ # 日志文件(需设置IIS写入权限)
关键文件要求:
- 必须包含默认首页文件(按优先级排序):
- index.html
- default.htm
- default.asp
- index.php
- 建议配置web.config文件(XML格式)用于URL重写、权限控制等高级功能
2.2 开发环境准备
对于动态网站,需提前安装:
- .NET Runtime(根据项目版本选择)
- PHP(如需支持PHP应用)
- MySQL/SQL Server(数据库服务)
测试建议:开发阶段可使用8080端口避免与本地其他服务冲突,生产环境必须使用80(HTTP)或443(HTTPS)标准端口。
三、IIS站点创建与配置
3.1 基础站点创建
- 打开IIS管理器(Win+R输入
inetmgr) - 右键”网站”节点选择”添加网站”
- 配置关键参数:
- 网站名称:建议使用”项目名_环境”格式(如MyApp_Prod)
- 物理路径:选择准备好的网站目录
- 绑定类型:
- HTTP:端口80
- HTTPS:需提前配置SSL证书(后文详述)
- IP地址:生产环境建议指定服务器IP,开发环境可选”全部未分配”
3.2 高级配置选项
应用程序池设置
- 在”应用程序池”节点右键新建专用池
- 关键参数配置:
- .NET版本:根据项目选择v2.0/v4.0/无托管代码
- 托管管道模式:集成模式(推荐)或经典模式
- 启动模式:AlwaysRunning(保持进程常驻)
- 定期回收时间:建议设置1440分钟(24小时)
默认文档配置
在站点”默认文档”设置中,可调整首页加载优先级。对于SEO优化,建议将index.html置于首位,并删除不必要的默认文档(如iisstart.htm)。
四、安全加固最佳实践
4.1 HTTPS证书配置
- 获取SSL证书(可通过某证书颁发机构申请免费DV证书)
- 在IIS中导入证书:
- 服务器证书 → 导入 → 选择PFX文件
- 绑定HTTPS:
- 添加站点绑定 → 类型选择https
- 选择导入的证书
- 启用SNI(多域名场景必需)
安全建议:
- 强制HTTPS跳转:通过URL重写模块实现
- 禁用弱密码套件:在
web.config中配置<security>节点 - 定期更新证书(DV证书有效期通常90天)
4.2 权限控制方案
- 应用程序池身份:
- 生产环境建议使用专用服务账户
- 开发环境可使用ApplicationPoolIdentity
- 文件夹权限设置:
- IIS_IUSRS组:读取+执行权限
- 管理员组:完全控制权限
- 禁止继承:防止权限意外扩散
五、生产环境部署要点
5.1 性能优化策略
- 启用输出缓存:
<system.webServer><caching enabled="true" enableKernelCache="true"><profiles><add extension=".css" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="7.00:00:00" /></profiles></caching></system.webServer>
- 启用压缩:
- 在IIS中启用静态/动态内容压缩
- 建议压缩类型:HTML/CSS/JS/XML
5.2 监控与日志
- 启用失败请求跟踪:
- 设置跟踪规则(如404/500错误)
- 日志存储路径建议单独分区
- 性能计数器配置:
- 监控关键指标:请求/秒、内存使用、CPU占用
- 设置警报阈值(如CPU>80%持续5分钟)
六、常见问题解决方案
6.1 500内部服务器错误
- 检查事件查看器(Windows Logs → Application)
- 常见原因:
- 权限不足(检查应用程序池身份)
- 配置错误(检查web.config语法)
- 依赖服务未启动(如数据库连接失败)
6.2 403禁止访问
- 检查默认文档是否配置正确
- 验证文件夹权限设置
- 确认IP限制规则(如未配置”全部未分配”)
6.3 端口冲突处理
- 使用
netstat -ano | findstr :80查找占用进程 - 常见冲突服务:
- Skype(默认占用80/443)
- 其他Web服务器(如Apache/Nginx)
- SQL Server Reporting Services
通过以上系统化的配置流程,开发者可以快速搭建稳定可靠的IIS网站服务。对于企业级应用,建议结合负载均衡、数据库集群等方案构建高可用架构,具体实施可参考行业通用技术方案进行扩展设计。