TeamCity Nuget 通过 IIS/ARR/URLRewrite 提供

TeamCity Nuget 通过 IIS/ARR/URLRewrite 提供

版本:

  • Windows Server 2008 R2 SP1
  • TeamCity 7.0.2
  • Tomcat 7.0.27
  • IIS 7.5
  • 平均租金 2.5
  • URL 重写 7.2.2

TeamCity 以 JavaEE WAR 的形式安装到预先存在的 TomCat 安装中。已成功设置 IIS 以反向代理调用 TeamCity。我的重写规则如下:

<rule name="TeamCity Redirect" stopProcessing="true">
    <match url="^(TeamCity.*)" />
    <action type="Rewrite" url="http://localhost:8080/{R:1}" logRewrittenUrl="true" />
</rule>

我从远程主机登录 TeamCity 并使用/管理它没有任何问题。但是,当我启用内置 NuGet 服务器时,我遇到了一个令人沮丧的问题。

尝试从任何通过 IIS 代理的远程主机访问 nuget 源时,都会出现 HTTP 404 错误。404 错误来自 IIS。当我从 url 中删除最后的路径部分时,404 错误来自 Tomcat。

例子:

因此,在某个地方,我遇到了 IIS 使用 *.svc 文件的重定向问题,但就我而言,我无法弄清楚为什么,或者在哪里设置它。

任何帮助是极大的赞赏。

答案1

啊,发帖的力量。问完问题后,我决定再看看我设置的规则。

规则是在站点级别设置的。我将它们移至服务器级别,一切运行正常。

答案2

似乎您不需要任何重写规则。检查 TeamCity 服务器上下文路径是否与您的公共服务器中的相同,即http://public.com/contextPathhttp://本地主机:8080/contextPath

TeamCity 使用请求 URI 来生成 NuGet 源,因此您应确保您的代理提供 HOST、X-Forwarded-Host、X-Forwarded-Server、X-Forwarded-For 标头。您可以启用/检查 tomcat 的访问日志,以查看从 IIS 到 TeamCity 的请求。

另请参阅安装指南 http://blog.endjin.com/2010/11/a-step-by-step-guide-to-hosting-teamcity-in-iis-7/

如果此方法无效,请将服务器日志附加到[电子邮件保护]

相关内容