如何在具有相同端口但具有不同主机头的 IIS 服务器中托管多个站点并公开访问它

2024-01-08

我正在尝试在 IIS 服务器中托管多个网站。我可以使用不同的端口托管它。但我不想为不同的网站使用不同的端口。我也尝试使用主机标头,但我只能在本地访问这些标头。我想公开/外部访问这些标头。我怎样才能做到这一点?我还配置了 DNS。但我无法公开访问它。 是否可以将 www.test.com 分配给一个站点,将 www.test.com/site2 分配给另一站点?


IIS 服务器可以托管多个网站,但为了 IIS 正确分发 HTTP 请求,每个网站都必须用一些唯一的值进行标识。对于 IIS 网站,它由三个属性组成,这三个属性构成每个网站的唯一组合。

这些都是:

  • TCP端口号
  • IP地址
  • 主机头

如果您想在同一端口和 IP 地址上托管多个网站,则必须使用唯一的主机标头。

主机标头是客户端向服务器发送的 HTTP 请求的一部分,该请求指定其要发送到哪个网站。因此,必须在 Web 服务器端指定此主机标头,并且 DNS 包含与 Web 服务器的主机名和 IP 地址相匹配的正确条目。

您不能像这样设置主机标头www.test.com/site2 http://www.test.com/site2。如果您想使用这种格式,您可以将 site2 作为子应用程序托管在测试网 http://www.test.com主机标头包含站点。

要创建唯一的绑定,请为第二个网站指定另一个名称(主机名)。右键单击 TestSite 并选择编辑绑定。选择您需要的绑定并单击“编辑”。 在“主机名”字段中指定用户将寻址到的唯一主机名,例如 TestSite。

现在,您需要将服务器的别名(A 或 CNAME)添加到 DNS,以指定 Web 服务器的 IP 地址或名称。

您可以在 DNS 控制台 (dnsmgmt.msc) 中为名称 TestSite 创建 CNAME 条目,并将 IIS 服务器的域名指定为 FQDN 目标主机。

使用 PowerShell:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.contoso.loc -Name testsite -ZoneName contoso.loc

如果要访问本地 IIS 服务器,站点名称到服务器 IP 地址的映射是通过文件 C:\Windows\system32\drivers\etc\hosts 完成的。

当您想公开访问该网站时,您需要购买域名和公共IP地址。如果您不是从公共域名提供商处购买域名,则互联网客户端无法解析您的域名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在具有相同端口但具有不同主机头的 IIS 服务器中托管多个站点并公开访问它 的相关文章

  • 获取 ASP.NET 网站的 IIS 站点名称

    在我的 ASP NET Web 应用程序中 我想查找在 IIS 中创建它时指定的名称 该名称对于服务器来说是唯一的 我对网站的域名不感兴趣 而是对 IIS 中为该网站指定的实际名称感兴趣 我需要能够在 IIS6 和 7 上可靠地完成此操作
  • 与 .Net 中的 IIS SMTP 服务器进行有意义的交互

    我们的公司每周都会向大量订阅者发送新闻通讯 当公司还很年轻时 在我加入之前 他们使用了一些群发邮件程序的 免费 版本 花了六个小时才发送 5K 封邮件 并且违反了互联网上的每一次反向 DNS 检查 我将其升级为定制的 Net 小部件 该小部
  • 更改 IIS 主目录路径会触发重新启动吗?

    在 IIS 特别是 6 0 中 在主目录选项卡下 如果我更改本地路径 是否会导致 IIS 重新启动或应用程序池回收 相关的 是否有一个参考概述了 IIS 元数据库的哪些更改将触发重新启动或应用程序池回收 我还没找到这个 更改主目录路径中网站
  • 如何使用IIS压缩所有文件

    IIS compression has been enabled 以下是web config的http压缩标签
  • 全局主题目录的 iis 快速路径

    我正在使用 Visual Studio 2010 SP1 ASP NET Webforms Framework NET 3 5 和IIS 快递 也称为 WebMatrix 我在 Visual Studio 中使用我的网站收到以下编译错误 T
  • 为 Mercurial 执行 hgweb.cgi 时,指定的 CGI 应用程序行为不当...

    我有 IIS 6 我将 Mercurial 安装在 c program files mercurial 中 我在 c program files python 中安装了 Python 2 6 I added extension handli
  • 在 IISNode 上运行的 Azure Node.js 应用程序中未定义端口

    我有一个使用 IISNode 运行 Node js 应用程序的 Azure 应用服务 问题是process env PORT未定义 我读过 IISNode 使用一个叫做命名管道并且端口信息可能不容易读取 但就我而言 我只是未定义 我尝试部署
  • 将 fetch 与 Content-Type 结合使用时出现 CORS 错误 [重复]

    这个问题在这里已经有答案了 我正在尝试从 FireFox 中的不同域向 REST Web 服务发送 POST 请求 我为此使用 JavaScript 获取 函数 我在 IIS 中托管 REST Web 服务 在我在 JavaScript 中
  • Windows 身份验证在 IISExpress 中有效,但在 IIS 中无效

    我有一个奇怪的问题 我正在 Visual Studio 2013 中使用最新的 MVC5 我正在尝试创建一个托管匿名 API 的站点以及一个需要通过 Windows 身份验证的 Intranet 域凭据的管理仪表板 当通过 IIS Expr
  • 在我的网络上的其他计算机上查看我的 IIS 托管站点

    在家里 我有一个包含两台机器的简单网络设置 在一台机器上 我有一个使用 IIS7 托管的网站 而不是标准localhost index htm地址我已经添加了一个条目HOSTS将本地 IP 127 0 0 1 指向该域的文件 www mys
  • IIS 7.5 中未显示 ASP.NET 功能

    我在 IIS 7 5 中遇到问题 其中 ASP NET 功能部分未显示在我的 Web 应用程序上 我的环境 Windows 2008 R2 SP1 IIS 7 5 7 5 7600 NET Framework 4 0 我的问题与此处发布的问
  • 严重: getRealPathFromConn 错误

    目前我正在调试我们的应用程序中一个看似随机的错误 我将尽力提供尽可能多的细节 基本上一段时间后 我们服务器上某个应用程序的应用程序池就会停止 我必须启动它 或者有时重新启动 Coldfusion 或更糟糕的是机器才能再次运行 服务器日志表明
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • IIS 如何识别请求的是哪个站点?

    如果我在一台服务器上托管多个站点 并且 dns 服务器将不同的域名解析到同一地址 这是服务器的名称 那么 IIS 如何知道最终请求的是哪个站点 因此 客户端输入我的 1 站点地址 gt myrandomsite mydomain com 然
  • 使用 web.config 将除一页之外的 HTTP 重定向到 HTTPS

    我想让所有页面从 HTTP 重定向到 HTTPS 除了根目录中的一个页面 pagename php 该页面需要作为 HTTP 工作 需要重定向回 HTTP 我目前有以下代码可以从 none www 重定向到 www 以及从 HTTP 重定向
  • 我什么时候需要将“协商客户端证书”设置为启用?

    我可以选择支持客户端证书 这就是为什么我设置Client certificates to Accept在 IIS 上 这适用于大多数机器 然而 在某些机器上 IIS 返回 500 这可以通过设置来 解决 Client certificate
  • 是否有 .NET 库或 API 可以与 IIS 配置数据库交互/编辑它?

    或者我是否坚持使用自己的 XML 切割 功能 我想创建一个小型任务托盘应用程序 以便我可以快速将虚拟目录重新指向硬盘上的几个文件夹之一 一点背景 我的开发机器上的代码库有 3 个不同的 svn 分支 Current Production B
  • 如何记录进入 IIS 的 HTTP 请求

    我在我的开发机器上运行 IIS 5 我有一个 asp net 3 5 Web 服务在其上运行 我从同一服务器上运行的不同 Web 应用程序调用该服务 我的服务返回错误 500 内部服务器错误 我正在对其进行故障排除 我的请求是通过Syste
  • 在 WCF 服务上启用 CORS。获取 HTTP 405:不允许的方法

    我正在尝试在 WCF 服务上启用 CORS 当我尝试从客户端发送请求时 该请求是使用OPTIONS动词 我总是得到一个HTTP 405 Method not allowed error 如果我尝试使用 Fiddler 并使用以下命令创建相同

随机推荐

  • 如何使用 .htaccess 禁用代理缓存

    我遇到一个问题 公司代理服务器为不同的登录用户提供页面 我认为我可以通过禁用代理缓存来解决这个问题 这一页 http drupal org node 32109建议在 htaccess 中包含以下代码片段 ExpiresDefault A0
  • 有人使用 JRuby-Rack 和 Rails 3 吗?

    还有其他人在运行 Rails 3 和 JRuby Rack 或者 Jetty 和 Rails 3 吗 有什么技巧吗 我对一些调试感到疯狂 此时我只想知道这是可能的 这些说明对我有用 http mathias biilmann net 201
  • 如何找到OpenSSL可信证书的路径?

    如何找出我的 OpenSSL 安装在哪里寻找已安装 受信任 的证书 有时是这样 etc ssl cert 但我有一个新系统 它不适用于此路径 查找证书的默认路径在每个平台上可能有所不同 您可以使用以下命令查找系统配置 openssl ver
  • MediaRecorder 捕获的音频文件在使用 Retrofit 2 发送到服务器后被破坏

    我的应用程序录制一个音频片段 并在录制完成后使用Retrofit2将片段发送到服务器 服务器收到文件 但文件已损坏 我所说的损坏是指无法播放 我使用以下 URL 示例 url mydomain co audio myaudio mp4 播放
  • 独立 IntelliJ 解析器中的符号解析

    我尝试使用 IntelliJ SDK 作为独立的 java 解析器 它在大多数情况下工作正常 但无法解析泛型方法的返回类型 当我调试时resolveMethod for verify mock simpleMethod 在 IntelliJ
  • Chrome 开发者扩展中的 CORS 问题

    我是 Chrome 扩展开发的新手 我正在开发一个 Chrome开发商扩展 作为开发人员工具的一部分出现 此要求是进行外部服务 某些 URL 调用 该调用可能位于也可能不在同一服务器 原始服务器 中 从文档中我看到扩展不受同源策略的限制 h
  • 字符串有多少个参数

    在C 中使用String Format格式化字符串之前 我想知道该字符串接受多少个参数 例如 如果字符串是 0 与 1 不同 我想知道该字符串接受两个参数 例如 如果字符串为 0 与 1 和 2 不同 则该字符串接受 3 个参数 我怎样才能
  • SQL Server Compact 文件在哪里?

    我有一个使用 SQL Server Compact 数据库的 ASP NET MVC 项目 我有以下连接字符串FoobarContext
  • PHP str_replace 无法正常工作

    我正在使用 str replace 但它无法正常工作 我有一个文本区域 其输入通过表单发送 当服务器接收到数据时 我想将新行更改为 teams GET teams teams str replace n teams echo teams 奇
  • 如何对 Firebase.functions().httpsCallable 执行 GET?

    如何对 Firebase functions httpsCallable 执行 GET 我不断收到 POST 错误 404 但这是对我的服务器的 GET 请求 我应该不传递任何内容 还是需要更改此 httpsCallable 来获取函数 C
  • 您的语言在实践中对 unicode 的支持程度如何?

    我正在研究新的语言 有点渴望一种我不再需要担心字符集问题以及我在新项目中使用 PHP 遇到的大量其他问题的语言 我倾向于认为 Java 过于冗长和混乱 而且我不想用 6 英尺长的杆子接触 Windows 因此倾向于排除 Net 这就剩下了基
  • 如何在 SASS 中使用父选择器将类链接到元素[重复]

    这个问题在这里已经有答案了 我正在尝试使用 SASS scss 执行以下操作 class Base class styles a Additions for when applied to a link 但我收到编译器错误 Invalid
  • Flutter windows:获取flutter应用程序的win32窗口句柄

    如果我没记错的话 flutter 目前是使用 win32 库在 Windows 上实现的 尽管一些文档页面指出这可能会更改为 NET 或其他一些框架 因为 flutter windows 处于非常早期的开发阶段 并且可能随时更改 时间而不保
  • 如何在hive中添加jar文件

    我正在尝试使用 hive contrib 0 10 0 jar 在 hive 中添加添加 JAR hive contrib 0 10 0 jar命令但它总是说 hive contrib 0 10 0 jar 不存在 我现在使用的是 HDP
  • vim:更改默认粘贴寄存器

    当我在 vim 中拉取或删除文本并运行时 reg 我看到它要进去注册 但是当我粘贴时 我看到 E353 寄存器中没有内容 我从中得到的是 vim 正在拉动 但粘贴自 set clipboard clipboard echo version
  • 带进度对话框的 Android 下载管理器

    我已经使用 Android 下载管理器编写了一个 Android 应用程序 并且尝试使用下面的代码显示下载进度 myTimer schedule new TimerTask public void run try DownloadManag
  • 如果字段是实例成员,则回调处理程序会出现异常

    希望有人帮助我解决这个问题 If CallbackHandler proxy是静态的 那么一切正常 using System using System ServiceModel namespace ConsoleApplication5 D
  • Boost heap 设置用户定义的比较函数

    最近 我发现 Boost Heap 在我的项目中非常有用 但我找不到任何示例代码来显示如何设置任意比较函数 include boost heap fibonacci heap hpp using boost heap fibonacci h
  • 如何使用 SOA 架构实现松耦合

    我最近做了很多关于 SOA 和 ESB 等的研究 我现在正在工作中重新设计一些遗留系统 并希望使用比目前更多的 SOA 架构来构建它 我们在大约 5 个网站中使用这些服务 而我们的遗留系统目前面临的最大问题之一是 几乎每次我们进行错误修复或
  • 如何在具有相同端口但具有不同主机头的 IIS 服务器中托管多个站点并公开访问它

    我正在尝试在 IIS 服务器中托管多个网站 我可以使用不同的端口托管它 但我不想为不同的网站使用不同的端口 我也尝试使用主机标头 但我只能在本地访问这些标头 我想公开 外部访问这些标头 我怎样才能做到这一点 我还配置了 DNS 但我无法公开