IIS配置多站点的核心答案:你不需要额外软件,只需通过“不同主机名(域名)”或“不同端口”来区分各站点,操作上只需在IIS管理器中添加网站、设置绑定、分配权限,就能让一台Windows服务器同时跑多个独立网站。 下面我把实际配置过程中的关键细节和常被卡住的地方逐一说明。
IIS怎么配置多个站点?先分清三种绑定方式
IIS本身没有“多站点开关”,它的多站点能力来自“绑定”(Binding),每一条绑定由三部分组成:IP地址、端口、主机名(即域名),当用户请求到服务器时,IIS根据这三项信息决定把请求交给哪个站点。
| 绑定方式 | 典型场景 | 用户访问方式 | 成本与体验 |
|---|---|---|---|
| 不同IP绑定 | 服务器有多个公网IP,每个站点独占一个IP | 直接输入IP或域名 | 公网IP需要额外购买,价格不低,不推荐 |
| 不同端口绑定 | 内部测试、开发环境 | 域名或IP后加端口,如http://example.com:8080 | 零成本,但非80端口不专业 |
| 相同IP+80端口+主机名 | 生产环境最常用 | 直接输入域名,无需带端口 | 域名费用便宜,几乎无额外成本 |
举个具体例子:服务器IP是1.2.3.4,你手上有a.com和b.com两个域名,把这两个域名都解析到1.2.3.4,之后在IIS里添加两个站点,绑定信息都写IP 1.2.3.4、端口80,但主机名分别填a.com和b.com,这样用户访问a.com时,IIS根据请求头里的Host字段把流量送到第一个站点;访问b.com时则送到第二个站点,这个方案也是多数Windows服务器托管多个ASP.NET站点的常规做法。
如果你用过Apache或Nginx,可能会问“IIS多站点和Nginx反代哪个更省心”?我的看法是,只要你的程序基于.NET或Windows集成认证,就用IIS,少一层转发也少一个故障点。
iis配置站点实操:三步添加第一个网站
咱们直接按步骤走,假设你已经装好Windows Server 2019,并且通过“服务器管理器”添加了IIS角色,现在要在这台机器上发布两个站点:站点A用于公司官网,站点B用于内部业务系统。
第一步:准备站点目录与文件
- 在D盘建立目录
D:websiteA和D:websiteB。 - 把官网源码和业务系统源码分别放入对应目录。
- 如果有数据库连接串,记得按环境修改。
- 还要提醒一个细节:IIS默认网站目录是
C:inetpubwwwroot,但我习惯把站点文件放到D盘,避免系统盘被占满。
第二步:添加网站并配置绑定
- 打开“服务器管理器”,点击“工具”菜单,选择“IIS管理器”。
- 在左侧连接树中,右键“网站”,选择“添加网站”。
- 在弹出的窗口里,网站名称填
siteA,物理路径选D:websiteA。 - 绑定类型选
http,IP地址保持“全部未分配”,端口填80,主机名填入www.sitea.com。 - 点击确定后,站点A即创建完成。
对站点B重复同样操作,主机名换成 siteb.example.com,注意两个站点的绑定不能完全一样,否则IIS会直接提示冲突。
第三步:检查权限与启动状态
- 在IIS管理器左侧点击“应用程序池”,找到siteA对应的池,右键“高级设置”,将“.NET CLR版本”设为“无托管代码”(如果是纯静态资源)或“v4.0”(如果是.NET应用)。
- 右键站点A目录,选择“属性”>“安全”,添加
IIS_IUSRS用户并赋予“读取”权限。 - 回到IIS管理器,确认站点状态为“已启动”,如果不放心,可以点“浏览”测试。
到这一步,你已经完成了iis配置站点的完整流程,后面的多个站点,无非是重复添加并保持绑定唯一。
iis配置站点端口冲突怎么排查?域名绑定注意事项
在多个站点上线后,最
常见的意外就是端口冲突,我用一个真实场景说明:你原本跑着默认网站占用了80端口,此时再添加一个绑定IP为“全部未分配”、端口80、主机名留空的站点,系统会报错:“该端口正在使用”,根因是这两个站点的绑定完全相同,IIS不知道该把请求给谁。
端口冲突排查步骤
- 打开命令提示符,输入
netstat -ano | findstr :80,记下最后一列的PID。 - 再输入
tasklist | findstr PID号,查看对应进程名称。 - 如果是
System进程占用80端口,那是IIS的HTTP.sys内核驱动,不用管。 - 如果是其他程序(如Apache、Tomcat),就需要停掉它们,或给IIS换端口。
域名绑定的三个注意点
- 域名解析生效前,无法通过公网访问,你可以在本地改hosts文件做临时测试。
- 两个域名共用80端口是允许的,只要主机名不同。
- 如果你的服务器在国内,域名必须完成ICP备案,否则会被运营商拦截,这是国内服务器运维的基本常识,和IIS本身没关系。
业内专家指出,IIS的主机名绑定完全基于HTTP请求头中的Host字段,因此只要客户端支持HTTP/1.1,服务器就能正确区分不同域名,这也是生产环境多站点的理论基础。
给多个站点配置HTTPS绑定
现在不少浏览器会把没有HTTPS的站点标记为不安全,所以多站点环境下,给每个域名配上SSL证书是必要操作。
- 在IIS管理器的服务器节点下,双击“服务器证书”,先导入从证书供应商处获取的证书文件。
- 回到网站“绑定”窗口,点击“添加”,类型选
https,端口填443,主机名填对应域名,SSL证书下拉框中选择刚导入的证书。 - 多个HTTPS站点同样要用不同的主机名,否则证书选择和流量分发都会混乱。
多站点运行后的性能与安全建议
站点多了,不能只管添加,还要考虑资源隔离和攻击防护,行业共识认为,给每个站点单独分配一个应用程序池,是防止单个站点故障拖垮整台服务器的首要措施。
- 每个站点独立应用池:在“应用程序池”中为每个站点新建一个池,避免内存泄漏或崩溃互相影响。
- 开启带宽限制:在站点“限制”中设置最大带宽,防止某个站点耗尽带宽。
- 启用请求筛选:在IIS配置中禁止上传可执行文件,比如限制
.exe、.bat后缀,降低被上传木马的风险。 - 定期更新补丁:Windows Server的累积补丁和IIS安全更新,是防御已知漏洞的底线。
从成本角度看,IIS多站点配置能帮你在扩容前省下一笔服务器采购费用,这也是很多中小公司选择一台物理机跑多个客户网站的原因。
尾声
多站点配置本身不难,难的是把绑定、权限、故障排查理清,记住我们开头那句话:绑定不冲突,权限给到位,站点就起来了,先把第一个站点跑通,后面会顺手很多。
iis配置站点常见疑问解答
问:IIS配置多个站点时,用IP绑定还是主机名绑定更好?
答:生产环境建议用主机名绑定,IP绑定需要额外购买独立IP,增加固定开销;端口绑定会让访问地址带上端口号,不利于用户记忆,主机名绑定只需正确配置DNS解析,成本最低,也最灵活。
问:iis配置站点后发现端口被占用,如何查看是哪个程序占用了80端口?
答:命令提示符中执行 netstat -ano | findstr :80,得到占用进程的PID后,再用 tasklist | findstr PID 确认对应程序,如果是System进程,通常是IIS自身;如果是其他程序,可以停止该程序或修改IIS站点端口。
问:iis配置站点后域名打开403错误,通常是什么原因?
答:403错误几乎都和权限或默认文档有关,先检查站点文件夹的安全设置,确保 IIS_IUSRS 用户有读取权限,然后在IIS的“默认文档”功能中确认存在index.html、index.asp等文件项,这两个条件满足后,绝大多数403都能解决。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/589468.html




