在 Azure 中创建子域

Creating subdomains in Azure

我们在 Azure 中有一个 VM,ourserver.westeurope.cloudapp.azure.com。我需要创建两个子域,sub1.ourserver.westeurope.cloudapp.azure.com 和 sub2.ourserver.westeurope.cloudapp.azure.com。两者都必须指向与 ourserver.westeurope.cloudapp.azure.com.

相同的 IP

我该怎么做?

目前,Azure 支持添加子域。

如果您想使用子域名,也许您可​​以从域名注册商(第三方,如register.com、godaddy.com)购买域名,并将您的域名映射到此 VM 的 Public IP 地址,然后将子域添加到此 public IP 地址。

您也可以为每个网站使用不同的端口号。

默认端口:80 ourserver.westeurope.cloudapp.azure.com

端口:8081 sub1 端口:8082 sub2

等等

要访问转到:

http://ourserver.westeurope.cloudapp.azure.com:portNumber

http://ourserver.westeurope.cloudapp.azure.com:8081 ---> sub1

我不确定,但也许 URL 重写 可以在这种情况下工作。

您的 VM 的“public”文件夹中可以有不同的文件夹,每个子域的内容一个。然后,使用 URL 重写将每个子域映射到其特定文件夹中。

我做了类似的事情,但不是针对子域。我只是将不同的域指向不同的文件夹。这是您的情况的示例(我没有测试,只是根据我的情况猜测):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="sub1 virtual path rewrite">
                    <match url="^.*$" ignoreCase="false" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^sub1\.ourserver\.westeurope\.cloudapp\.azure$" />
                    </conditions>
                    <action type="Rewrite" url="/Sub1Folder/{R:0}" appendQueryString="true" />
                </rule>
                <rule name="sub2 virtual path rewrite">
                    <match url="^.*$" ignoreCase="false" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^sub2\.ourserver\.westeurope\.cloudapp\.azure$" />
                    </conditions>
                    <action type="Rewrite" url="/Sub2Folder/{R:0}" appendQueryString="true" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="sub1 virtual path rewrite">
                    <match serverVariable="RESPONSE_LOCATION" pattern="^(https?\://ourserver\.westeurope\.cloudapp\.azure)/Sub1Folder/(.+/)$" />
                    <conditions>
                        <add input="{RESPONSE_STATUS}" pattern="^301$" ignoreCase="false" />
                    </conditions>
                    <action type="Rewrite" value="sub1/{R:1}/{R:2}" />
                </rule>
                <rule name="sub2 virtual path rewrite">
                    <match serverVariable="RESPONSE_LOCATION" pattern="^(https?\://ourserver\.westeurope\.cloudapp\.azure)/Sub2Folder/(.+/)$" />
                    <conditions>
                        <add input="{RESPONSE_STATUS}" pattern="^301$" ignoreCase="false" />
                    </conditions>
                    <action type="Rewrite" value="sub2/{R:1}/{R:2}" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

我不知道您是否需要在域注册中创建子域。也许您需要这样做,因为有时您必须支付额外费用才能拥有子域。 所以,我不知道 URL Rewrite 是否可以在不创建它们的情况下工作。如果有效,我不知道这样做是否合法(请不要采取任何变通方法来避免注册费用)。