在 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 是否可以在不创建它们的情况下工作。如果有效,我不知道这样做是否合法(请不要采取任何变通方法来避免注册费用)。
我们在 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 是否可以在不创建它们的情况下工作。如果有效,我不知道这样做是否合法(请不要采取任何变通方法来避免注册费用)。