我目前正尝试使用IIS反向代理设置各种Jetbrains服务,以便通过https使用。完整的预期设置应该看起来像这样:
TeamCity: https://server.company.com -> http://server.company.com
YouTrack: https://server.company.com/youtrack/ -> http://server.company.com:1234/issues/
Hub: https://server.company.com/hub/ -> http://server.company.com:5678/hub/
UpSource: https://server.company.com/upsource/ -> http://server.company.com:9876
我已经通过使用以下配置为TeamCity和YouTrack带来了一些困难:
在IIS中,我有一个TeamCity网站作为重定向。该站点的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 YouTrack" stopProcessing="true">
<match url="^youtrack/(.*)" />
<action type="Rewrite" url="http://server.company.com:8080/issues/{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}" />
</rule>
<rule name="Reverse Proxy to UpSource" stopProcessing="true">
<match url="^upsource/(.*)" />
<action type="Rewrite" url="http://server.company.com:8081/{R:1}" />
</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>
</system.webServer>
</configuration>
此外,我已按照documentation:
中的说明配置了以下服务器变量HTTP_X_FORWARDED_HOST
HTTP_X_FORWARDED_SCHEME
HTTP_X_FORWARDED_PROTO
但是,当尝试通过https://server.company.com/upsource/访问UpSource时,我得到的是一个名为“Upsource”的空白页面。没有错误消息。甚至不是Fav Icon。通过http://server.company.com:8081/访问UpSource仍然可以正常工作。
我也尝试过运行以下命令链:
upsource.bat stop
upsource.bat configure --listen-port 8081 --base-url https://server.company.com:443/upsource/
upsource.bat start --J-Dbundle.websocket.compression.enabled=false
但是,这确实导致问题变为:
HTTP ERROR: 404
Problem accessing /bundle/starting. Reason:
Not Found
Powered by Jetty:// 9.3.20.v20170531
如何将UpSource设置为像TeamCity和Hub一样工作?
对此的任何帮助将不胜感激。
答案 0 :(得分:0)
在YouTrack支持员工帮助解决相关的YouTrack错误的帮助下,我找到了解决此问题的原因。
原因是:当使用重定向路径通过https访问UpSource时,http和https变体中的路径必须相同。
简而言之,这不起作用:
while (1)
{
sales = MonthSales();
if (sales == -1)
break;
printf("Your salary for the month is:$%.2lf\n", CalcPay(sales));
}
但这会:
https://server.company.com/upsource -> http://server.company.com:9876
我通过在[InstDir] / bin中的upsource.bat上运行以下配置命令来实现此目的:
https://server.company.com/upsource -> http://server.company.com:9876/upsource
现在我至少可以通过https连接并登录UpSource。还有一个问题,但由于它与这个问题的主题无关,我将为它创建一个单独的问题。
答案 1 :(得分:0)
注意:在IIS 8.5上,在ARR PROXY-Settings处设置HTTP1.1。否则,websocket会连接,但是没有通信。
upsource诉upsource-2018.2.1291
https://www.jetbrains.com/help/upsource/proxy-configuration.html#IISreverseProxy