在IIS中添加网站只需通过管理器创建新站点并绑定域名端口,添加防护网站则需要额外部署WAF规则或安全模块,两者配合才能兼顾发布与防御。
第一步:iis怎么添加网站步骤详解
准备工作:检查IIS安装和必备组件
打开服务器管理器,确认Web服务器(IIS)角色已安装,如果使用Windows Server 2016以上版本,建议勾选ASP.NET 4.8、常见HTTP功能、压缩等组件,很多新手在添加网站前漏了URL重写模块和应用程序初始化,导致后续配置伪静态或预加载时卡壳,你可以通过PowerShell快速验证:Get-WindowsFeature Web-Server,如果Installed为False,则用Add-WindowsFeature Web-Server补上。
创建网站:从管理器到绑定域名
打开IIS管理器,右键“站点”选择“添加网站”,关键字段如下:
- 站点名称:建议用项目名加环境标识,shop_prod”。
- 物理路径:指向你的网页文件存放目录,比如
D:Websitesshop。尽量避免放在系统盘,以免日志膨胀占满C盘。 - 绑定:类型选http或https,IP地址保持“全部未分配”,端口默认80,主机名填写你的域名(如
www.example.com),如果同一个IP需要跑多个站点,主机名必须不同,否则会冲突。 - 立即启动网站:默认勾选,点击确定后网站就上线了。
添加成功后,你可以在浏览器输入域名或服务器IP验证,如果提示“无法访问”,请检查防火墙入站规则是否开放了80/443端口,以及应用程序池的.NET CLR版本是否匹配(比如ASP.NET 4.0项目要用v4.0池)。
权限与目录设置
网站文件目录需要给IIS_IUSRS组读权限,如果要写入文件(比如上传目录),则需加上修改权限,很多站长因为权限不足导致500错误,推荐做法:在站点根目录下创建Uploads文件夹,右键属性→安全→添加IIS_IUSRS,勾选“修改”。应用程序池标识默认是ApplicationPoolIdentity,如果访问数据库或网络资源,建议改为NetworkService或指定域账户。
第二步:iis添加防护网站的核心配置
启用IP和域名限制
IIS自带的IP和域限制功能可以有效拦截恶意扫描,安装该功能:服务器管理器→添加角色和功能→Web服务器(IIS)→安全性→勾选“IP和域限制”,安装后,在站点级别双击“IP地址和域限制”,设置默认操作“拒绝”,然后添加允许规则,把你自己的办公IP、CDN节点IP段加进去,这样未经允许的IP会被直接拒绝,减少暴露面。
部署WAF模块:ModSecurity或云WAF
IIS本身没有内置WAF,行业共识是结合第三方模块实现防护,对于自建服务器,ModSecurity是开源首选,安装步骤:
- 从ModSecurity官网下载IIS版本的安装包,或者用GitHub上的
modsecurity-iis。 - 安装后,在IIS模块中注册ModSecurity ISAPI筛选器。
- 配置规则集:下载OWASP CRS规则,解压到
C:ModSecurityrules,修改modsecurity.conf,将SecRuleEngine DetectionOnly改为On,并引用CRS的REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf和RESPONSE-999-EXCLUSION-AFTER-CRS.conf。
如果你不想折腾,也可以直接使用云WAF服务,比如简米云WAF或酷番云Web应用防火墙,通过修改DNS解析将流量引流到WAF节点,再回源到服务器IP,这种方案不需要改动IIS,防护规则由云厂商持续更新,
相当一部分企业级站点采用这种混合模式。
配置SSL证书与HTTPS强制跳转
防护网站必须启用HTTPS,否则数据传输是明文,在IIS中添加网站后,绑定类型选择https,端口443,并选择已安装的证书,如果没有证书,可以申请免费SSL(如Let’s Encrypt),用Windows ACME工具自动续签,强制跳转方法:URL重写模块添加一条规则,匹配所有HTTP请求,重定向到相同的URL但协议改为https,状态码选301(永久重定向),这样所有访客都会自动走加密通道。
日志监控与访问审计
默认日志在C:inetpublogsLogFiles,但建议把日志路径改为非系统盘,并设置日志字段,记录请求来源IP、请求方法、URI、状态码、User-Agent,定期用LogParser或第三方工具扫描异常模式,比如大量404、暴力破解路径、SQL注入特征,你还可以通过IIS Failed Request Tracing排查具体请求的失败原因,这对调试防护规则非常有效。
进阶:iis网站性能优化与安全加固
缓存与压缩
启用压缩和压缩,减少带宽消耗,在IIS的“压缩”功能中勾选两项,并设置压缩级别,对于静态文件(js、css、图片),可以设置客户端缓存,通过HTTP响应标头“添加自定义标头”,设置Cache-Control: max-age=86400,配合输出缓存,可以显著降低服务器负载。
请求过滤与防扫描
IIS的请求筛选功能可以限制URL长度、查询字符串长度、允许的文件扩展名等,建议将默认的
AllowDoubleEscaping设为False,阻止URL编码绕过,在请求筛选->“拒绝的URL序列”中添加常见攻击路径,如/admin(如果不用)、/backup、/.env,对于扫描器频繁试探的/wp-admin、/phpmyadmin等,直接返回404或403,避免暴露后门。
iis怎么添加网站与防护的常见问题
Q:添加网站时提示“绑定冲突”怎么解决?
A:这通常是因为同一个IP:端口组合已经被其他网站使用,如果多个网站共享同一IP,必须设置不同的主机名,在IIS管理器中选择“绑定”,编辑目标网站的主机名,确保每个站点都有唯一的主机名,如果某个网站没有域名,可以暂时用localhost或一个未使用的域名,但线上环境必须使用真实域名。
Q:添加防护网站后,正常访问被拦截怎么办?
A:先检查IP和域限制规则,确认是否误封了合法IP,如果使用了ModSecurity,可以将模式改为DetectionOnly,查看错误日志(C:ModSecuritymodsec_audit.log),找出触发拦截的规则ID,然后通过SecRuleRemoveById移除该规则,云WAF用户可以在控制台查阅拦截日志,将白名单IP加入“IP白名单”。
Q:iis网站添加域名后,只能通过IP访问,域名不行?
A:最常见的原因是域名没有正确解析到服务器IP,或者DNS缓存未生效,先在本地ping域名看是否解析到服务器IP,如果解析正确,检查IIS绑定的主机名是否完全匹配(包括www和非www),如果域名是www.example.com,但绑定只写了example.com,那么www子域名无法访问,建议同时绑定两个主机名,或者使用URL重写将www重定向到非www。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/581665.html




