我有一个运行 Nexus Repository OSS 的 Windows Server 2012-R2 服务器localhost:8081
。我在 IIS 中使用以下规则配置了反向代理:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8081/{R:1}" />
</rule>
</rules>
<outboundRules>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
当我从另一个系统访问该站点并导航到 nexus.mycompany.com 时,我可以看到代理正在工作……主要是。所有依赖的css、js等都是localhost:8081
远程机器无法解析的。
我尝试添加出站规则,希望它能解决问题,但没有。
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8081/(.*)" />
<action type="Rewrite" value="http{R:1}://nexus.mycompany.com/{R:2}" />
</rule>
查看文档,我尝试设置一个基本 URL。它描述的按钮不在 GUI 中。我发现一篇 Stack Overflow 文章解释说它已被移至 Capabilities 部分。我通过功能添加了基本网址,但它仍然不起作用。
每次更改后我都重新启动了 Windows 服务。
我想做的是通过主机名使用存储库并适当地加载它。我在这里遗漏了一些明显的东西吗?它使用完整 URL 而不是相对 URL 是否还有其他原因?