IIS7绑定多个域名的核心方法就两种:单一站点添加多个域名绑定,或者每个站点单独绑定一个域名,操作路径都在IIS管理器右侧的“绑定”功能里。多数情况下,个人站长和企业运维选第一种,几分钟就能搞定。
绑定前先搞懂IIS7的域名绑定逻辑
IIS7和更早的IIS6相比,绑定域名的界面更直观,但底层逻辑没变,一个网站要能被域名访问,必须经过三层匹配:
- 客户端请求的域名
- IIS站点绑定里的主机头
- 服务器上该站点对应的IP和端口
只要三层中的某一环对不上,浏览器就会报错,或者直接跳到默认站点,行业内把这个机制叫作“主机头路由”,理解了这个概念,后面所有配置都会顺理成章。
为什么需要在IIS7上绑定多个域名
常见场景就那几个:
- 一台服务器放多个网站,租用多台服务器成本不划算
- 同一个网站需要多个域名访问,比如主站和备用域名
- 不同业务共用一个IP,通过域名区分访问入口
无论哪种情况,IIS7都不需要额外安装插件,系统自带的功能就能完成,据统计,国内较大比例的Windows服务器运维场景仍在生产环境中使用IIS7,掌握这个技能是服务器管理的基本功。
IIS7怎么绑定多个域名(两种操作路径)
IIS管理器本身就是个图形化操作界面,不需要敲命令行就能完成全部配置,下面按两种场景分别拆解步骤。
同一个站点添加多个域名绑定
这是最常用的做法,适合一个网站程序需要响应多个域名的情况,比如同时绑定www和根域名。
- 打开IIS管理器,选中左侧“网站”节点下你要配置的站点
- 在右侧操作区找到绑定,双击打开
- 确认列表里已有一条类型为http、端口80、IP地址为“全部未分配”的记录
- 点击添加,类型选http,IP地址保留“全部未分配”,端口保持80
- 在“主机名”一栏写入第一个域名,比如
example.com,确定 - 再点添加,主机名写入
www.example.com,确定
此时这个站点就已经绑定了两个域名,访问它们都会进入同一个站点目录,如果之后还要加域名,重复步骤6就行。
创建多个站点分别绑定不同域名
一台服务器上跑多个独立网站,每个网站用不同域名访问,操作稍有不同:
- 在左侧“网站”节点右键,选择添加网站
- 填写站点名称,站点A”,物理路径选到该网站对应的文件夹
- 类型选http,端口80,IP地址选“全部未分配”
- 主机名填站点A的域名
- 完成创建
- 重复上述步骤,创建站点B、站点C,分别填各自域名
每个站点绑定一个域名,互不影响,如果添加了第二个域名,会作为备用域名访问同一个站点,绑定完成后在命令行输入iisreset重置一下IIS服务,可以让配置立即全局生效。
IIS7绑定域名后打不开怎么回事
配置完成后发现域名访问不了,这是新手最容易卡住的环节,按下面顺序排查,少走弯路。
域名解析还没生效
绑定域名之前,DNS解析必须先到位,在本地电脑打开命令提示符,输入ping 你的域名,如果返回的IP地址不是你服务器IP,说明解析还没生效,这时候去域名DNS服务商后台检查解析记录,刚修改的解析需要一段时间全球生效,部分地区的运营商缓存更新时间较长。
主机头不匹配或重复绑定
如果服务器上存在多个绑定记录,相同的主机名可能互相冲突,在IIS管理器里逐站点检查绑定列表,确认是否有两个站点绑定了同一个域名,这种情况系统会报错,无法保存,另外检查域名后面有没有输错,常见的问题是www前缀写错或多打了一个空格。
服务器防火墙或安全组没放行80端口
即使IIS绑定了域名,如果服务器外部防火墙或云服务商安全策略屏蔽了80端口,外部依然无法访问,直接在本地浏览器访问IP试试,如果IP也不通,检查防火墙入站规则,确认80端口规则已允许,云服务器一般还要登录控制台查看安全组配置,放行80端口(以及443端口,如果用HTTPS的话)。
IIS7绑定多域名时的HTTPS证书配置
现在部署SSL证书是标配了,IIS7绑定域名后不会自动启用HTTPS,需要单独配置证书。
证书类型选择方面,多个域名共用一张证书比较方便:
- 单域名证书:一个域名一张证书,域名多成本就会随之上升
- 多域名证书(SAN):一张证书覆盖最多100个域名
- 通配符证书:覆盖某个主域及其所有子域名
IIS7上HTTPS绑定步骤
- 在服务器上安装好证书,完成后打开IIS管理器
- 选中站点,右侧点击绑定,选择添加
- 类型选择https,端口443,勾选“要求服务器名称指示(SNI)”
- 主机名填该证书对应的域名
- 下方SSL证书下拉框,选到刚导入的证书,确定
站点同时存在80和443两条绑定记录,访问HTTP时会自动跳转到HTTPS吗?IIS7默认不会自动跳转,需要额外配置URL重写规则,如果安装了URL Rewrite模块,可以新增一条规则,匹配所有HTTP请求跳转到HTTPS协议,遇到“IIS7绑定域名 https证书 不生效”的情况,多数原因是证书的域名和站点绑定域名不一致,加上SNI勾选状态没生效。
IIS7绑定多个域名的两种方案对比
实际选择时,很多人纠结哪种方式更合适,用一张表格直观对比:
| 对比维度 | 单站点多绑定 | 多站点分别绑定 |
|---|---|---|
| 适用场景 | 同一网站程序,多个域名入口 | 多个独立网站,不同代码 |
| 资源占用 | 较低,一份进程处理所有域名 | 较高,每个站点独立进程(或应用池) |
| 管理复杂度 | 简单,一个地方管完 | 较高,每个站点单独管理 |
| SSL证书配置 | 需包含多域名的证书 | 每个站点独立证书 |
| 日志区分 | 默认日志混在一起,靠域名字段区分 | 日志天然分开,排查方便 |
| 成本 | 低,不额外占用空间 | 取决于站点数量和访问量 |
选哪边更合理,核心看业务形态。 一个商城网站绑定三个不同后缀的域名引流,选左边;一台服务器给三家客户分别跑独立网站,选右边。
IIS7绑定域名后访问仍指向默认站点
绑定完成后打开浏览器输入域名,看到的是IIS默认欢迎页,原因是服务器上存在默认站点(Default Web Site)且当前域名没匹配到任何绑定,检查顺序是:
- 确认添加绑定时主机名没写错
- 确认该站点状态为“已启动”
- 确认默认站点已经停止或者删除了80端口的绑定
还有相当一部分情况是启用了“IIS7 泛解析 域名绑定”造成的,站点绑定了空主机头(即主机名留空),这样所有没被其他站点匹配的域名都会落到这个站点上,如果不想让随意的域名指向你的网站,应确保每个站点都明确填了主机名,不要留空。
IIS7绑定多域名时保留原访问IP
部分场景下,域名绑定后原来用IP访问服务器的渠道会失效,IIS7判定优先级是:先匹配主机头,再匹配IP地址,如果客户端直接用IP请求,系统会优先选择主机头为空的那条绑定,想保留IP访问,至少保留一条主机名为空的绑定记录用于兜底,这里还能顺带解决“IIS7 保留ip访问”的疑问:一台服务器多个站点共用一个IP,就是通过主机头区分实现的。
常见问题速查
IIS7绑定域名后无法访问是什么原因
按顺序检查解析状态、站点状态、绑定列表、防火墙,排查耗时最多的大概率是安全组规则,不少服务器本地访问通,外部公网不通,就是这层挡了。
IIS7绑定多个域名是否需要备案
绑定本身没有任何限制,但如果服务器在中国大陆,域名解析到国内IP且提供Web服务,都需要完成ICP备案,未备案域名接入到中国大陆服务器,会被服务商阻断访问,境外服务器不需要备案,但访问速度可能受影响。
IIS7绑定域名刷新后不生效
配置绑定后,清一下本地DNS缓存:命令行输入ipconfig /flushdns,浏览器也会有客户端缓存,特别是Chrome内核浏览器,按Ctrl+Shift+R硬刷新或者直接开启无痕模式测试,另外确认IIS里绑定的域名是否带www前缀,例如你访问的是example.com,但只绑定了www.example.com,也会出现打不开的情况。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/589623.html




