IIS 反向代理背后的 Wordpress - 连接重置
Wordpress behind IIS reverse proxy - connection resets
我在使用 Wordpress 时遇到问题,运行 它在反向代理之后。我已经将问题本地化,这是这里提出的问题的解决方案:
Modifying headers with IIS7 Application Request Routing
在我应用上面接受的解决方案中的命令之前,我无法访问网站上的任何链接并且出现太多重定向错误。 打开保留原始主机的选项 header 解决了这些问题。 但是在我无法再编辑单个页面后,它不会加载并且 return ERR_CONNECTION_RESET 错误。
因为这发生在我应用上面的命令后,我再次关闭它进行了测试,现在它又可以工作了。可以预见的是,其他错误 returned 也是如此。所以我在这里陷入僵局。任何人都知道为什么打开此选项后连接突然重置?
重置的URL看起来像这样:
http://www.siteurl.com/wp-admin/post.php?post=19&action=edit
这是反向代理站点的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.111.15:8080/{R:1}" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="[HTTP_ACCEPT_ENCODING]" />
<set name="HTTP_ACCEPT_ENCODING" value="eee" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml2">
<match filterByTags="A, Form, Img" pattern="^http(s)?://192.168.111.15:8080/(.*)" />
<action type="Rewrite" value="http{R:1}://www.siteurl.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml2">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
<add input="{HTTP_HOST}" pattern="siteurl.com" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
我刚刚解决了问题!在这里找到了答案:
https://forums.iis.net/t/1210664.aspx
我将响应缓冲区阈值(在应用程序请求路由 -> 服务器代理设置中)提高了很多,我遇到问题的页面立即开始工作。所以这是一个与 IIS 相关的问题。
我希望这对其他人有所帮助,因为这几天对我来说很辛苦!
我在使用 Wordpress 时遇到问题,运行 它在反向代理之后。我已经将问题本地化,这是这里提出的问题的解决方案: Modifying headers with IIS7 Application Request Routing
在我应用上面接受的解决方案中的命令之前,我无法访问网站上的任何链接并且出现太多重定向错误。 打开保留原始主机的选项 header 解决了这些问题。 但是在我无法再编辑单个页面后,它不会加载并且 return ERR_CONNECTION_RESET 错误。
因为这发生在我应用上面的命令后,我再次关闭它进行了测试,现在它又可以工作了。可以预见的是,其他错误 returned 也是如此。所以我在这里陷入僵局。任何人都知道为什么打开此选项后连接突然重置?
重置的URL看起来像这样: http://www.siteurl.com/wp-admin/post.php?post=19&action=edit
这是反向代理站点的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.111.15:8080/{R:1}" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="[HTTP_ACCEPT_ENCODING]" />
<set name="HTTP_ACCEPT_ENCODING" value="eee" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml2">
<match filterByTags="A, Form, Img" pattern="^http(s)?://192.168.111.15:8080/(.*)" />
<action type="Rewrite" value="http{R:1}://www.siteurl.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml2">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
<add input="{HTTP_HOST}" pattern="siteurl.com" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
我刚刚解决了问题!在这里找到了答案: https://forums.iis.net/t/1210664.aspx
我将响应缓冲区阈值(在应用程序请求路由 -> 服务器代理设置中)提高了很多,我遇到问题的页面立即开始工作。所以这是一个与 IIS 相关的问题。
我希望这对其他人有所帮助,因为这几天对我来说很辛苦!