繁体   English   中英

基于子域的IIS路由请求到不同端口

[英]IIS Route Request To Different Ports Based on Sub-domain

我有一个域,我们称之为domain.com

在我的 DNS 提供商上,我已将两个子域配置为指向同一个 IP 地址。 例如:
sub1.domain.com => 185.146.11.17
sub2.domain.com => 185.146.11.17

我在 IIS 中配置了两个站点,分别侦听端口 8080 和 8081。

现在,由于流量直接通过185.146.11.17:80 ,我需要根据请求的子域将其路由到端口8080或端口8081

我已经阅读了有关重写规则和反向代理的内容,但是对于如何根据请求的子域简单地实现我所需要的内容感到非常困惑。

如何解决这个问题?

经过多次挖掘、反复试验和拔出头发,我设法解决了这个问题。 在这种情况下,IIS 似乎为一个人提供了很多繁重的工作,实际上并不需要任何明确的反向代理和/或重写规则。

DNS设置如下
sub1.domain.com => 185.146.11.17
sub2.domain.com => 185.146.11.17

一个人需要做的就是:
1. 停止/删除端口80上的默认网站。
2. 创建新网站:
2.1. 站点名称设置为sub1.domain.com
2.2. IP 地址设置为All Unassigned ,端口设置为80
2.3. 主机名设置为sub1.domain.com
3. 对sub2.domain.com重复该过程。

按照上述步骤,这一切都应该神奇地工作。 主机名非常重要,所以一定不要错过这些。 我建议为 HTTPS 设置这一切,然后创建一个规则,如果请求来自这样的协议,则从 HTTP 重定向。

感谢大家提供建议。

听起来您需要为自己创建一个 ARR 负载平衡。

先决条件

1.应用请求路由和URL重写安装。

2.三个DNS名称,一个用于前端,两个用于后端。

在此处输入图片说明 在此处输入图片说明

3.三个带域名的网站:

主站点

在此处输入图片说明

子站点 1

在此处输入图片说明

子站点2

在此处输入图片说明

4.创建一个网络农场并将这些域添加到您的网络农场。 在此处输入图片说明

  1. IIS 会在Server 节点的URL rewrite 中创建一个负载均衡路由规则“ARR_MyServer_loadbance”,然后为其添加条件模式。

在此处输入图片说明

 <globalRules>
                <rule name="ARR_MyServer_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://MyServer/{R:0}" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="www.candy.com" />
                    </conditions>
                </rule>
            </globalRules>

6.转到配置管理器->网络农场并将PreserveHostHeader设置为false。 在此处输入图片说明 7.转到您的网络农场->我的服务器监控和管理,确保所有服务器都健康现在您可以为您的主站点进行负载平衡。

在此处输入图片说明

当您将服务器加入您的网络场时,请记住为每个服务器设置 HTTP 端口。 在此处输入图片说明

Applicationhost.config 应如下所示:

  <webFarm name="MyServer" enabled="true">
            <server address="domain1.candy.com" enabled="true">
                <applicationRequestRouting httpPort="8080" />
            </server>
            <server address="domain2.candy.com" enabled="true">
                <applicationRequestRouting httpPort="8081" />
            </server>
            <applicationRequestRouting>
                <healthCheck url="" />
                <protocol preserveHostHeader="false" />
            </applicationRequestRouting>
        </webFarm>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM