10

有任何想法吗?

4

4 回答 4

33

使用 IIS 7.5,您可以使用应用程序请求路由将请求路由teamcity.server.domain.com:80到 Tomcat 的server.domain.com:81. 我认为这种方法更优越,因为 Tomcat 连接器在 WS2008 x64 下似乎有点不稳定。

Jon Alb 有一篇关于如何在 WS2008 上配置 TeamCity 和 IIS 的文章:

此外,您需要确保您的 DNS 可以解析teamcity.server.domain.comserver.domain.com. 我的 IIS 服务器需要ipconfig /registerdns正确更新其 DNS 条目。正确的意思是在这种情况下,在 domain.com 查找区域中创建一个server条目,一个简单的 A 记录是不够的。在该域中,您需要为 * 创建 CNAME 记录,因此任何子域都将被重定向到server.domain.com

我遇到的一个大问题是 IIS 7.5 似乎不再正确写入applicationHost.config文件,因此端口号最终不会被保留。这将导致一个令人讨厌的400.0 Bad Request错误,因为将达到 MAX_FORWARDS 限制(请求以圆圈为根)。

要解决此问题,请将以下内容添加到C:\Windows\System32\inetsrv\config

<webFarms>
  <webFarm name="teamcity" enabled="true" adminUserName="" adminPassword="[enc:AesProvider:2blZ7roifGTktpn8zBBuVQ==:enc]" primaryServer="">
    <server address="localhost" enabled="true">
      <applicationRequestRouting httpPort="YOURPORTHERE!!!" />
    </server>
    <applicationRequestRouting>
      <loadBalancing algorithm="WeightedRoundRobin" />
      <protocol reverseRewriteHostInResponseHeaders="true" />
    </applicationRequestRouting>
  </webFarm>
</webFarms>

编辑如果您正在运行其他站点并获得 404,除了遵循第 2 部分之外,您还需要创建一个虚拟站点来捕获主机名,如下面的 Ian Patrick Hughes 回答状态。

于 2011-01-30T17:29:25.680 回答
10

要添加到 Johannes Rudolph 的答案... Jon Alb 文章是对在 IIS 7.5 中公开 Team City 进行简单细分的最佳选择。唯一要提到的是,如果您在该服务器实例上运行其他站点,在您完成他的第二部分之后,您可能需要创建一个虚拟站点以查找子域主机标头值,因为 IIS 似乎从未执行过我的农场如果没有匹配的站点,则重新编写 url。但是,如果您想保护端口 80 上的 Team City 登录页面,这也应该允许您使用 HTTP 身份验证。

于 2011-10-19T03:25:09.420 回答
5

您需要Tomcat 和 Tomcat 的 IIS 连接器

于 2009-05-13T16:00:49.970 回答
5

在 IIS 7 中托管 TeamCity 的分步指南

http://blog.endjin.com/2010/11/a-step-by-step-guide-to-hosting-teamcity-in-iis-7/

于 2011-06-08T10:20:35.943 回答