我正在尝试使用反向 IIS 代理在单个服务器上通过 https 设置 UpSource 以及 YouTrack、TeamCity 和 Hub。
情况如下:
UpSource 的 http 版本位于http://server.company.com:8081/upsource并且工作正常。我希望它可以通过https://server.company.com/upsource访问。但是,虽然可以通过 https 地址访问 UpSource,但连接会立即中断,并出现以下错误消息:
Backend is not available
TypeError: Failed to fetch
考虑到后端似乎可用并且正在运行,因为http://server.company.com:8081/upsource运行良好,我发现这个错误很奇怪且令人困惑。
至于我的配置,我主要按照文档中概述的步骤进行设置,并在需要的地方进行修改以说明我们有四个 JetBrains 服务在单个服务器上运行并通过同一个 IIS 反向代理。
IIS 代理的当前 web.config 内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Reverse Proxy to TeamCity" stopProcessing="true">
<match url="^teamcity(.*)" />
<action type="Rewrite" url="http://server.company.com{R:1}" />
</rule>
<rule name="Reverse Proxy to Hub" stopProcessing="true">
<match url="^hub(.*)" />
<action type="Rewrite" url="http://server.company.com:8082/hub{R:1}" />
<serverVariables>
<set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
<set name="HTTP_X_FORWARDED_SCHEMA" value="https" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
</serverVariables>
</rule>
<rule name="Reverse Proxy to YouTrack" stopProcessing="true">
<match url="^youtrack(.*)" />
<action type="Rewrite" url="http://server.company.com:8080/youtrack{R:1}" />
<serverVariables>
<set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
<set name="HTTP_X_FORWARDED_SCHEMA" value="https" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
</serverVariables>
</rule>
<rule name="Reverse Proxy to UpSource" stopProcessing="true">
<match url="^upsource(.*)" />
<action type="Rewrite" url="http://server.company.com:8081/upsource{R:1}" />
<serverVariables>
<set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
<set name="HTTP_X_FORWARDED_SCHEMA" value="https" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
</serverVariables>
</rule>
<rule name="Reverse Proxy to Collaboration General" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://server.company.com/{R:1}" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<requestLimits maxUrl="6144" maxQueryString="4096" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
正如我所提到的,这已经适用于 TeamCity 和 Hub。但是,对于 UpSource,似乎仍然缺少一些东西,这可能与“TypeError: Failed to fetch”有关。我试过查找,但到目前为止找不到任何有用的信息。
如果有人对如何解决此问题有任何想法,我将非常乐意就此获得更多意见