我已根据互联网上的说明在IIS 7.5上为Atlassian Confluence设置了反向代理。
我想在同一台服务器上将所有流量重定向到“docs.unimaze.com”到“localhost:8090”。
我就这样做了:
(.*)
(忽略大小写)http://localhost:8090/{R:1}
重写(追加查询字符串并停止处理后续规则。为了使一切工作(来自https://serverfault.com/questions/76013/iis6-vs-iis7-and-iis7-5-handling-urls-with-plus-sign-in-base-not-querystr),我必须做的唯一另一件事是在服务器上运行此命令,以便允许URL中带有“加号”的URL。
%windir%\system32\inetsrv\appcmd set config "WebSiteName"
-section:system.webServer/security/requestFiltering -allowDoubleEscaping:true
Confluence本身似乎在尝试从外部应用程序编辑模块时完美地工作(LucidChart Diagrams失败),因为重写到外部应用程序也被重写,例如,尝试重定向到此URL:
http://docs.unimaze.com/documents/edit/4b157fd9-8e28-4d70-8587-0fdd0839fbca?callback=...
当重定向实际上应该是外部应用程序时,它应该保持不受重写规则的影响:
https://www.lucidchart.com/documents/edit/4b157fd9-8e28-4d70-8587-0fdd0839fbca?callback=...
有一种简单的方法可以解决这个问题吗?
答案 0 :(得分:3)
这有助于:appcmd.exe set config -section:system.webServer/proxy /reverseRewriteHostInResponseHeaders:"False" -commit:apphost
在UI中,应取消选中与服务器节点上的IIS中的“应用程序请求路由”上的此操作相对应的设置(选择“服务器代理设置”)。
但是,这会导致无法在Internet Explorer 11 L中加载页面 页面显示,但是图表所在的空白区域,它会尝试永久加载。
在Firefox和Chrome中,它运行正常。 我不知道它为什么在IE 11中“冻结”。将从其他机器检查是否总是发生这种情况。
答案 1 :(得分:0)
处理此问题的最简单方法是利用IIS主机标头并使代理网站认为它响应为www.example.com:80而不是localhost:8080。事实证明,AAR反向代理具有相当于Apache的ProxyPerserveHost
设置,它在UI中没有很好地记录,也没有公开。
要启用此设置,您需要打开一个提升的shell并运行:
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true
然后将目标站点配置为使用适当的主机头侦听127.0.0.1:80,然后将代理配置为使用请求代理回localhost,它应该排队。