在一台物理服务器上连接两个IIS(Internet Information Services),核心思路是让两个站点分别占用独立的IP、端口或主机头,最常见做法是创建两个独立网站并配置不同绑定信息。
一个服务器部署两个IIS的本质理解
很多站长第一次听到“一个服务器连接两个IIS”时,会误以为需要安装两套IIS程序,根据行业共识,Windows Server自带的IIS本身就是多站点架构,一个IIS服务可以承载无数个网站,真正需要“连接两个IIS”的场景,通常是下面这几种:
- 服务器上有两块网卡或两个IP地址,想分别跑两套独立业务
- 一台服务器既跑IIS 8.5又跑IIS 10,比如从旧系统迁移时的过渡阶段
- 两个团队各自管理一个网站,希望互不干扰
- 用虚拟机或容器隔离的方式,在一台物理机上运行两个独立的IIS实例
如果是前三种情况,不需要额外装第二个IIS在现有IIS里添加两个网站就行,只有第四种情况才需要真正的“两个IIS进程”。
同一台服务器连接两个IIS的三种方案对比
端口分离最直接但用户不友好
这是配置门槛最低的方式,打开IIS管理器,右键“网站”选择“添加网站”,第一个站点绑定8080端口,第二个站点绑定8081端口,用户访问时需要输入http://IP:8080和http://IP:8081。
适用场景:内网测试环境、开发调试、临时演示,生产环境不建议用非标准端口,用户的访问习惯和防火墙策略都会带来麻烦。
IP分离一台服务器连接两个IIS的经典做
先确认服务器绑定了几块网卡,执行ipconfig /all查看本机所有IP,如果有两个公网IP或一个公网IP加一个内网IP,就可以给两个网站各分配一个IP。
具体操作步骤:
- 在IIS管理器左侧选择“网站”
- 右键“添加网站”,网站名称填“SiteA”
- IP地址选第一个IP,端口填80,主机名留空
- 重复上述步骤添加SiteB,IP地址选第二个IP
- 两个网站的物理路径指向不同文件夹
请求进来时,IIS根据目标IP把流量分发到对应网站,互不干扰,日志也分开记录。
主机头分离一台服务器跑两个IIS站点最推荐的方案
主机头(Host Header)是HTTP请求头里的域名信息,两个网站共用同一个IP和同一个80端口,但绑定的域名不同,IIS收到请求后根据域名判断该交给哪个网站处理。
配置步骤:
- 在DNS服务商处把域名A和域名B都解析到这台服务器的同一个IP
- IIS里添加网站SiteA,绑定类型为http,IP地址选“全部未分配”,端口80,主机名填
www.domainA.com - 再添加网站SiteB,同样IP和端口,主机名填
www.domainB.com - 重启IIS(命令行执行
iisreset)生效
这是生产环境使用率最高的方案,一个IP加一个80端口就能承载大量网站,行业共识认为,主机头分离能够满足绝大多数中小企业一台服务器连接两个IIS站点的需求。
两个IIS站点绑定的详细操作路径
用图形界面完成绑定配置
打开服务器管理器 → 工具 → Internet Information Services(IIS)管理器,左侧选择“网站”,右侧操作栏点击“绑定”,选中已有的http类型绑定,点“编辑”可以修改端口和主机名,点“添加”可以增加新的绑定组合。
配置项含义:
| 配置项 | 作用 | 填写示例 |
|---|---|---|
| 类型 | 协议类型 | http或https |
| 主机名 | 域名标识 | www.example1.com |
| IP地址 | 监听哪个网卡 | 全部未分配 或 具体IP |
| 端口 | 监听端口 | 80、443、8080等 |
用命令行添加网站绑定
有些管理员习惯用命令行完成操作,执行以下命令可以在默认站点之外新建一个站点:
%windir%system32inetsrvappcmd add site /name:“SecondSite” /id:2 /bindings:http/:80:www.second.com /physicalPath:“D:sitessecond”
参数说明:/bindings后面的格式是“协议/IP:端口:主机名”,代表监听所有IP,创建完成后访问http://www.second.com即可看到第二个站点。
一台服务器装两个IIS独立实例的进阶玩法
用Hyper-V虚拟机跑第二个IIS
如果两个团队的业务系统对运行环境有严格隔离要求,直接在物理机装两个IIS实例容易出问题,业内专家指出,推荐用Hyper-V创建一台虚拟机,在虚拟机里独立安装Windows Server和IIS。
物理机网络和虚拟机网络做桥接,让虚拟机拥有独立IP,防火墙放行对应端口,两个IIS就是完全隔离的两套环境。
同机多实例的注册表修改法
IIS 6.0及更早版本支持通过修改元数据库实现多个独立实例,但IIS 7.0之后不再支持同机运行第二个IIS实例,如果你确实需要在同一操作系统里跑两个IIS,目前主流做法是:
- 使用Windows容器(Docker)运行带IIS镜像的容器
- 使用Hyper-V或VMware创建虚拟化实例
- 迁移到IIS的应用程序池隔离机制每个站点分配独立的应用池,进程互相隔离,效果接近“逻辑上的两个IIS”
常见端口冲突与连接故障排查
80端口被占用怎么办
两个IIS站点同时声明80端口且主机名不同,理论上不冲突,但如果还有其他程序(比如Apache、Nginx、Skype)抢占了80端口,IIS启动会失败。
排查步骤:
- 命令行运行
netstat -ano | findstr :80查看谁在监听80端口 - 确认PID后到任务管理器找到对应进程
- 停掉占用程序,或者在IIS里把站点绑定到其他端口
第二站点访问403或404的处理
403通常出在权限上第二个站点的物理路径没有给IIS_IUSRS组授权,右键文件夹 → 属性 → 安全 → 添加IIS_IUSRS用户,勾选读取和执行权限。
404则多数是绑定没生效,回到IIS管理器重新检查主机名有没有写对,域名解析有没有生效。
多个IIS站点的性能分配建议
一台服务器连接两个IIS站点后,资源分配必须提前规划,默认情况下两个站点共享CPU和内存,如果其中一个站点流量暴涨,另一个会被拖累。
做法是给两个站点分别创建独立应用程序池:
- IIS管理器左侧点“应用程序池”
- 右键“添加应用程序池”,名称填“PoolA”,.NET版本按业务需求选
- 右键另一个位置,再添加“PoolB”
- 分别进入站点SiteA和SiteB,右侧选择“基本设置”,把应用程序池改成对应的PoolA或PoolB
更进一步,可以在应用程序池的高级设置里限制CPU上限和内存上限,比如把“限制操作(每分钟)”设置为1000,把“私有内存限制(KB)”设置为512000,避免某个站点吃光所有资源。
两台IIS站点共用数据库时的连接配置
很多场景下,一个服务器连接两个IIS但共用一套数据库,这种情况下要注意数据库连接字符串的命名两个站点各自业务逻辑复杂,稍有不慎就会互相覆盖配置。
建议在web.config里使用不同的连接字符串名称,比如SiteADB和SiteBDB,数据库账号也分开创建,最小权限原则,SiteA的账号只对SiteA的库有读写权限,SiteB同理。
服务器两个IIS站点启用HTTPS的注意事项
给两个站点同时启用HTTPS,需要两张SSL证书,或者一张多域名证书(SAN证书),如果用的是“IP+443端口+主机名”的绑定方式,IIS的SNI(服务器名称指示)功能自动区分不同域名的TLS握手请求。
绑定https类型时,主机名一栏必须填写域名,两个站点的主机名不能相同,也不能留空,否则后添加的绑定会覆盖前面的。
自签名证书只适合测试,生产环境需要把证书链完整装到“受信任的根证书颁发机构”,客户端浏览器才不会报错。
服务器连接两个IIS后加速优化
两个站点同时跑,静态文件缓存策略要区分开,在IIS的“输出缓存”功能里,对图片、CSS、JS等静态资源设置较长的客户端缓存时间,比如1天或7天,动态页面设置较短的缓存,比如600秒。
如下载量大的站点,启用IIS内置的Gzip压缩可以明显降低带宽占用,在IIS管理器的“压缩”模块里勾选“启用静态内容压缩”和“启用动态内容压缩”,压缩级别设在4到6比较合适,CPU开销和带宽节省达到平衡。
一台服务器两个IIS站点日常运维清单
- 备份:每个站点的web.config和根目录定期备份,用IIS的“共享配置”功能可以把两个站点的配置集中集中在一台机器上管理
- 监控:性能监视器里同时观察两个进程的CPU和内存占用,设置阈值告警
- 日志:两个站点的日志默认在
C:inetpublogsLogFiles下按站点ID分目录,要注意磁盘空间增长情况 - 安全:每季度审查一次IIS的“请求筛选”规则和IP限制策略
常见问题解答
两个IIS站点指向同一个端口会报错吗
不会,前提是它们的主机名不同,IIS根据HTTP请求头中的Host字段进行路由,如果主机名也相同就会冲突,后启动的站点将无法正常工作。
一台服务器装两个IIS需要什么配置
如果是用虚拟机跑第二个IIS,宿主机至少4核CPU、8GB内存,如果是同一个IIS里跑两个网站,2核4GB的入门配置就能扛住日IP一万以下的中小站点。
服务器有两个IP但没有域名,能连两个IIS吗
可以,两个站点分别绑定两个不同的IP,端口都用80,访问时通过IP直接区分,不需要域名,这是内网场景最常见的一台服务器连接两个IIS的用法,如果只有一个IP,那就只能给第一个站点用IP访问,第二个站点改用8080端口。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/711374.html





