上一篇
在iis上架多个虚拟主机时
- 虚拟主机
- 2025-09-08
- 4
IIS上架多个虚拟主机时,需为每个站点配置不同主机头名、绑定独立IP或端口,并设置对应物理路径,确保各站点内容隔离
前期准备
IP地址分配策略
- 独立IP方案:为每个虚拟主机绑定不同的公网IP(需运营商支持),通过
服务器管理器→远程桌面服务→网络适配器
配置多块网卡或同一网卡上的多个IP段,此方式隔离性最佳但成本较高。 - 端口区分法:使用默认的80/443端口,通过非标准端口号(如8080、8443)实现访问分流。
http://yourdomain.com:8080
,适用于内部测试环境。 - 主机头名绑定(推荐):基于HTTP协议头的
Host
字段解析域名请求,所有站点共享同一IP+端口组合,需确保DNS正确指向该IP且域名已备案。
SSL证书部署规划
类型 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
单域证书 | 单个确定域名 | 成本低、配置简单 | 无法扩展其他子域 |
通配符证书 | 主域及所有下级子域 | 覆盖范围广 | 不支持多级野生卡 |
多域SAN证书 | 同时保护多个不同域名 | 集中管理、性价比高 | 需提前列明所有域名 |
IIS配置步骤详解
创建网站基础结构
- 打开“Internet Information Services (IIS) Manager”,右键左侧连接栏的
Sites
→Add Website...
- Site name: 自定义标识名称(如”SiteA_Prod”)
- Physical path: 对应站点根目录路径(建议置于D盘避免系统还原影响)
- Binding…: 点击后配置协议类型(HTTP/HTTPS)、IP地址、端口及主机名
示例配置::80:www.example1.com
表示所有IP上的80端口监听此主机头
应用程序池设置要点
参数项 | 推荐值 | 说明 |
---|---|---|
.NET CLR版本 | No Managed Code | 可选提高安全性 |
托管管道模式 | AlwaysRunning | 确保ASP.NET应用快速启动 |
回收条件 | 内存超限50%或72小时周期 | 防止内存泄漏导致服务不稳定 |
高级功能启用清单
- [] FTP发布支持(若需文件上传能力)
- [] SMTP邮件中继(企业邮箱集成场景)
- [] FTPS/TLS加密传输强制实施
- [] URL重写模块(实现301跳转、SEO优化)
- [] IP限制规则(阻止反面爬虫扫描)
安全加固措施
请求过滤规则示例
<!-web.config片段 --> <system.webServer> <security> <requestFiltering> <denyUrlSequences> <add sequence="~[^a-zA-Z0-9_-]"/> <!-禁止特殊字符URL编码攻击 --> </denyUrlSequences> <verbs allowUnlisted="false"> <add verb="GET" allowed="true"/> <add verb="POST" allowed="true"/> </verbs> </requestFiltering> </security> </system.webServer>
日志监控体系搭建
日志类型 | 保存路径 | 保留周期 | 分析工具推荐 |
---|---|---|---|
IIS访问日志 | C:inetpublogsLogFiles | 90天 | LogParser Studio |
失败请求追踪 | %SystemDrive%inetpublogs | 30天 | Microsoft Event Viewer |
HTTP错误日志 | C:SiteErrorLogs | 永久存档 | Elmah Error Logging |
常见问题与解答
Q1: 为什么新添加的网站无法通过域名访问?
A: 请按顺序排查以下环节:
1️⃣ 确认DNS A记录已解析到服务器公网IP(使用nslookup www.yourdomain.com
验证)
2️⃣ 检查IIS绑定是否正确填写了完全匹配的主机头名(区分大小写)
3️⃣ 确保防火墙入站规则放行了所需端口(默认TCP 80/443)
4️⃣ 测试浏览器缓存清除后刷新页面(Ctrl+F5强制重新请求)
Q2: 如何实现同一IP下多个HTTPS站点共存?
A: 关键步骤如下:
- 申请包含所有相关域名的SAN型SSL证书(如.yourmaindomain.com)
- 在IIS绑定设置中,为每个站点分别指定不同的主机头名并关联同一张证书
- 确保中间证书链完整安装(可通过
certlm.msc
查看受信任根证书颁发机构) - 启用内核级防护功能:进入
功能视图→SSL Settings→Client Certificates
禁用弱加密套件
通过上述系统化部署方案,可在单台IIS服务器上高效管理多个虚拟主机,同时