谁能告诉我如何在Azure网站上设置合理的标准反向代理安排?
我希望让(Azure托管)www.site.co/blog在blog.site.co上显示(非Azure托管)wordpress网站,以便用户看不到网址更改。
ApplicationHost.xdt已上传。
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
<rewrite>
<allowedServerVariables>
<add name="HTTP_X_USE_HTTPS" xdt:Transform="InsertIfMissing" />
<add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="InsertIfMissing" />
<add name="HTTP_X_UNPROXIED_URL" xdt:Transform="InsertIfMissing" />
<add name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" />
<add name="HTTP_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>
Web.Config包括:
<rule name="Proxy" stopProcessing="true">
<match url="^blog/?(.*)" />
<action type="Rewrite" url="https://blog.site.co/{R:1}" />
<serverVariables>
<set name="HTTP_X_UNPROXIED_URL" value="https://blog.site.co/{R:1}" />
<set name="HTTP_X_USE_HTTPS" value="{HTTPS}"/>
</serverVariables>
</rule>
我收到以下错误:
““ HTTP错误500.50-URL重写模块错误。不允许设置服务器变量” HTTP_X_UNPROXIED_URL“。将服务器变量名称添加到允许的服务器变量列表中。”
当xdt:Transform="InsertIfMissing"
用于设置具有相同标记名(<add>
)的同一父对象的多个子元素时,您还需要使用xdt:Locator="Match(name)"
,否则XDT系统将仅插入第一个 <add>
元素。
因此,在您的情况下,XDT系统仅插入<add name="HTTP_X_USE_HTTPS" />
而不会复制其他元素,因为已经<add />
存在一个元素。
(如果源转换文档指定多个或不带的元素,则我认为应该改进XDT并引发错误)Insert
InsertIfMissing
xdt:Locator
因此,将您更改applicationHost.xdt
为此:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
<rewrite>
<allowedServerVariables>
<add name="HTTP_X_USE_HTTPS" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
<add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
<add name="HTTP_X_UNPROXIED_URL" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
<add name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
<add name="HTTP_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句