版本:
- 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。
例子:
- http://proteus.pointloma.edu/TeamCity/guestAuth/app/nuget/v1/FeedService.svc来自任何主机都会出现 IIS 404 错误。
- http://proteus.pointloma.edu/TeamCity/guestAuth/app/nuget/v1/从任何主机都出现 TomCat 404 错误。
- http://localhost:8080/TeamCity/httpAuth/app/nuget/v1/FeedService.svc从安装 TeamCity 的服务器正确提供了供稿。
因此,在某个地方,我遇到了 IIS 使用 *.svc 文件的重定向问题,但就我而言,我无法弄清楚为什么,或者在哪里设置它。
任何帮助是极大的赞赏。
答案1
啊,发帖的力量。问完问题后,我决定再看看我设置的规则。
规则是在站点级别设置的。我将它们移至服务器级别,一切运行正常。
答案2
似乎您不需要任何重写规则。检查 TeamCity 服务器上下文路径是否与您的公共服务器中的相同,即http://public.com/contextPath和http://本地主机: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/
如果此方法无效,请将服务器日志附加到[电子邮件保护]