IIS(Internet Information Services)是由微软公司开发的Web服务器,广泛用于托管网站、Web应用程序和服务,在Windows系统中配置IIS服务器需要遵循一系列步骤,涵盖安装、基础设置、安全加固及性能优化等方面,以确保服务器稳定、安全且高效运行,以下从安装流程到高级配置进行详细说明。
IIS安装与环境准备
在配置IIS前,需确认操作系统版本,IIS支持Windows Server系列(如2012/2016/2019/2022)及Windows 10/11专业版/企业版,安装步骤如下:
-
通过服务器管理器安装:
- 打开“服务器管理器”,点击“添加角色和功能”,向导式安装中选择“基于角色或功能的安装”,目标服务器保持默认,勾选“Web服务器(IIS)”角色。
- 在“角色服务”页面,根据需求选择组件(默认勾选“HTTP功能”“管理工具”“安全性”等),常用角色服务包括:
- Web服务器:核心HTTP服务,支持网站托管。
- 应用程序开发:如ASP.NET、ASP、CGI等,根据开发语言选择(如.NET应用需勾选“.NET Framework 4.8扩展”)。
- 管理工具:如IIS管理控制台、管理服务(远程管理需启用)。
- 安全性:IP地址和域限制、请求筛选(防SQL注入、跨站脚本等)。
-
通过命令行安装(适合批量部署):
以管理员身份运行PowerShell,执行以下命令:Install-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Mgmt-Tools -Verbose
安装完成后,可通过“管理工具”打开“IIS管理器”或浏览器访问
http://localhost
,显示IIS欢迎页面即表示安装成功。
网站创建与基础配置
IIS的核心功能是托管网站,需通过“添加网站”向导完成基础配置:
-
添加网站:
- 在IIS管理器左侧“连接”窗格右键“网站”,选择“添加网站”,输入“网站名称”(如“CompanyWeb”)、“物理路径”(本地文件夹路径,如
D:WebCompany
)。 - “绑定”配置:HTTP默认端口80,若需HTTPS则添加443端口;若有多个网站,需设置“主机名”(如
www.example.com
),避免端口冲突。 - “网站池”:选择或新建应用程序池(默认为“DefaultAppPool”),建议每个网站独立使用应用程序池,避免相互影响。
- 在IIS管理器左侧“连接”窗格右键“网站”,选择“添加网站”,输入“网站名称”(如“CompanyWeb”)、“物理路径”(本地文件夹路径,如
-
默认文档与目录浏览:
- 双击“默认文档”,添加网站首页文件名(如
index.html
、default.aspx
),并调整顺序(优先级从上到下)。 - 双击“目录浏览”,可启用/禁用目录列表功能(安全建议禁用,避免暴露文件结构)。
- 双击“默认文档”,添加网站首页文件名(如
-
物理路径权限设置:
右键“网站”→“管理网站”→“浏览”,若无法访问,需检查物理路径文件夹权限:右键文件夹→“属性”→“安全”,添加“IIS_IUSRS”用户(或应用程序池标识用户)的“读取和执行”权限。
应用程序池配置
应用程序池是隔离不同网站运行环境的容器,影响网站的.NET版本、托管模式及资源回收策略:
-
创建应用程序池:
左侧“连接”窗格展开“应用程序池”,右键“添加应用程序池”,输入名称(如“CompanyAppPool”),.NET Framework版本选择“无托管代码”(若为PHP/Node.js)或“.NET Framework v4.0.30319”(若为ASP.NET),“托管模式”选择“集成”(推荐,支持全功能)或“经典”(兼容旧版ASP)。 -
回收配置:
双击应用程序池→“回收”,可设置“固定时间间隔”(如1740分钟,即29小时,避免夜间回收影响访问)、“请求数”(如10000请求后回收),防止内存泄漏。 -
进程模型:
在“高级设置”中,“标识”默认为“ApplicationPoolIdentity”(内置虚拟账户),也可配置为特定域用户(需更高权限);“最大工作进程数”建议单网站设为1(多进程需负载均衡)。
身份验证与安全配置
安全是IIS配置的核心,需根据需求启用合适的身份验证方式并限制访问:
-
身份验证模式:
- 匿名身份验证:默认启用,允许所有用户访问,适用于公开网站;若禁用,需配置其他身份验证方式。
- Windows身份验证:基于域账户,适合企业内部网站,需在“身份验证”中启用并禁用匿名。
- 基本身份验证:需用户名密码,但明文传输(必须配合SSL加密)。
- 摘要式身份验证:比基本认证安全,需域环境支持。
-
SSL证书配置(HTTPS加密):
- 自签名证书(测试用):在IIS管理器“服务器证书”中“创建自签名证书”,输入友好名称;
- 正式证书:购买后通过“导入”安装,或使用Let’s Encrypt免费证书(配合ACME客户端)。
- 绑定SSL:双击“网站”→“绑定”→“添加”,选择类型“https”,端口443,选择已安装的证书,勾选“需要SSL”(强制HTTPS访问)。
-
IP地址限制与请求筛选:
- “IP地址和域限制”:可添加允许/拒绝的IP(如拒绝恶意IP段),设置“默认操作”(拒绝访问)。
- “请求筛选”:双击“编辑请求筛选”,设置“文件扩展名阻止列表”(如.bat、.cmd)、“隐藏默认错误页”(避免信息泄露)。
性能优化与日志管理
-
压缩:
双击“压缩”→“启用动态内容压缩”和“静态内容压缩”,静态压缩(如HTML、CSS)可显著减少带宽占用,需设置“临时目录”和“最大目录大小”。 -
静态文件缓存:
双击“静态内容缓存”→“启用”,设置“缓存内容过期时间”(如1天),减少重复读取磁盘。 -
日志配置:
双击“日志文件”,设置“日志文件目录”(如%SystemDrive%inetpublogsLogFiles
)、“日志格式”(推荐W3C扩展日志,包含时间、IP、URL、状态码等字段),可定期清理旧日志(通过计划任务或PowerShell脚本)。
常见问题FAQs
问题1:IIS网站无法访问,提示“服务不可用”怎么办?
解答:
- 检查“应用程序池”状态:若显示“已停止”,右键“启动”;若频繁停止,检查“回收设置”是否过严(如请求次数或时间间隔太短)。
- 检查网站绑定:确认“端口”和“主机名”未与其他网站冲突,可通过
netstat -ano | findstr :80
查看80端口占用情况。 - 检查物理路径权限:确保应用程序池标识用户(如IIS_IUSRS)对网站文件夹有“读取”权限,且NTFS权限未阻止访问。
- 查看IIS错误日志:路径为
%SystemDrive%inetpublogsLogFiles
,根据错误码定位问题(如500为服务器内部错误,404为文件未找到)。
问题2:如何配置IIS支持PHP网站?
解答:
- 安装PHP处理器:下载PHP for Windows(如php-8.1.12-Win32-vs16-x64.zip),解压到
C:php
,将php.ini-development
重命名为php.ini
,编辑启用扩展(如extension_dir = "ext"
,取消;extension=mysqli
等扩展前的分号)。 - 配置FastCGI:打开IIS管理器,双击“处理程序映射”→“添加模块映射”,请求路径为
*.php
,模块选择“FastCgiModule”,可执行文件路径为C:phpphp-cgi.exe
,名称为“PHP_via_FastCGI”。 - 关联应用程序池:确保网站使用的应用程序池“托管模式”为“无托管代码”,或启用“32位应用程序”(若为32位PHP)。
- 测试:在网站根目录创建
info.php
为<?php phpinfo(); ?>
,访问http://localhost/info.php
,显示PHP配置信息即成功。
通过以上步骤,可完成IIS服务器的基础配置到安全优化,实际应用中还需根据业务需求调整参数(如负载均衡、 ARR反向代理等),并定期更新系统和组件补丁,确保服务器安全稳定运行。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27912.html