如何在IIS下设置TeamCity?

10

有什么想法吗?


1
为什么?Team City包含自己的Web服务器,并可以安装为Windows服务。 - Nat
9
因为您想在同一台机器上运行IIS和TeamCity,并且让它们都使用80端口? - Andrew Bullock
4个回答

33

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

Jon Alb在如何配置WS2008上的TeamCity和IIS方面有很好的文章:

此外,您需要确保您的DNS可以将teamcity.server.domain.com解析为server.domain.com。我的IIS服务器需要通过ipconfig /registerdns更新其DNS条目才能正确地进行更新。在这种情况下,正确意味着在domain.com查找区域中创建一个Domain条目来获取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>

编辑 如果您正在运行其他站点,并且除了遵循第2部分之外还遇到404错误,则需要创建一个虚拟站点来捕获主机名,如下面的Ian Patrick Hughes答案所述。


将近半年后,我想回来至少分享一下这个事实:我现在在一个Ubuntu服务器上使用lighttpd作为代理运行Teamcity。Windows设置在连接Mac OS构建代理时出现了一些问题,我无法解决。在Ubuntu上设置Teamcity非常轻松和容易。 - Johannes Rudolph

10

除了Johannes Rudolph的回答之外... Jon Alb的文章是最好的,可以简单地介绍在IIS 7.5中公开Team City。唯一要提到的是,如果您在该服务器实例上运行其他站点,则在按照他的第二部分 进行操作后,您可能需要创建一个虚拟站点,寻找子域主机标头值,因为似乎如果没有匹配的站点,IIS就不会执行我的农场重新编写网址。但是,这也应该允许您在端口80上保护Team City登录页面使用HTTP身份验证。


这是一个相当疯狂的步骤,但我的经验也是如此。当我安装了ASP.Net 3.5和4.5后,我的农场重定向停止工作,我不得不手动编辑Johannes Rudolph的指令配置,并添加匹配我的teamcity和teamcity.domain HTTP_HOST重写条件的虚拟站点。感谢您的提示! - grenade
是的,几年前我遇到了这个问题。我真的很惊讶人们仍然以类似的方式解决它! - Ian Patrick Hughes

5

这是一篇非常好的逐步教程.. 但最后在我的电脑上无法运行 :( - Piotr Kula

5

您需要安装Tomcat和Tomcat的IIS连接器,此处提供下载链接。


你能提供更多的细节吗? - Andrew Arnott
TeamCity运行在Tomcat下,因为它是一款Java Web应用程序。要将其连接到IIS下,您需要使用IIS连接器将Tomcat连接到IIS。 - Mike Pone
1
这方面的信息请参考:http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html - Ken
@Ken:我允许自己将你有用的链接编辑到答案中!谢谢! - Johannes Rudolph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接