Proxy nginx代理背后的TeamCity

Proxy nginx代理背后的TeamCity,proxy,nginx,rewrite,teamcity,Proxy,Nginx,Rewrite,Teamcity,我正试图在nginx背后建立TeamCity。我想。。。要重定向到…,但即使nginx成功执行此操作,登录页面返回的引用如下所示: <script type="text/javascript" src="/res/-8762791360234593415.js?v=1305815890782"></script> (我最终自己找到了一个解决方案……) 安装tomcat,然后安装TeamCity的WAR版本,该版本位于选项卡上方的下载区域。这将在基本URL下公开TeamC

我正试图在nginx背后建立TeamCity。我想。。。要重定向到…,但即使nginx成功执行此操作,登录页面返回的引用如下所示:

<script type="text/javascript" src="/res/-8762791360234593415.js?v=1305815890782"></script>
(我最终自己找到了一个解决方案……)

安装tomcat,然后安装TeamCity的WAR版本,该版本位于选项卡上方的下载区域。这将在基本URL下公开TeamCity,您可以在安装WAR时选择该URL

最简单的方法是将.war文件复制到Tomcat的webapps目录中,给它一个与所需基本URL匹配的名称。例如,将
teamcity.war
安装到
$TOMCAT_HOME/webapps
将在url
http://localhost:8080/teamcity
(假设默认的Tomcat安装)。从
https://public.address.com/teamcity
在nginx中,此内部地址的地址应该非常接近


在安装.war文件后,我很难让它立即运行,但在重新启动Tomcat后,一切都很好。

我使用标准的Teamcity Windows安装程序完成了这项工作,而且它可能可以在任何平台上运行

更改Teamcity的位置 根据a:

http://server/
http://server/teamcity/
,将
\webapps\ROOT
目录重命名为
\webapps\teamcity

另外请注意,每次升级Teamcity时都需要重命名此目录

代理配置 然后,nginx配置看起来像:

    location /teamcity/ {
            proxy_pass http://teamcity-server.domain.com/teamcity/;
    }
或者您可以使用Apache(由于身份验证要求,我切换到Apache):


您也可以在nginx/apache中进行重定向,但在Teamcity服务器上进行重定向意味着,如果有人直接在Teamcity web服务器上访问旧URL(而不是通过您的代理),他们仍然可以正确重定向(而不是404)

您可能还需要将scheme=“https”添加到/conf/server.xml连接器元素中(或添加一个或多个特定于代理的连接器),以使TeamCity知道所有URL都必须https://Excellent 建议使用相同的相对URL。我也这样做了,将https连接重定向到:8080内部,它就像一个符咒,在另一个相对URL中失败了。我只是想澄清一下:根文件夹应该重命名为您的目标名称,而不是移动到您目标的文件夹中name@Frederik正确的。我身上的尼克斯出来了。。(移动==重命名)。我将更新我的答案。还有一件事要补充:虽然这将使基础webapp功能正常,但构建代理的状态将为“断开连接”。您需要使用新的URL更新buildAgent/conf/buildAgent.properties。谢谢!我已经寻找了好几天的解决方案,这对我来说非常有效!我有几个web应用程序在同一个windows box上运行(服务于不同的非标准端口)。我正在使用nginx映射->的请求。我已经有了正确的nginx配置部分,但是teamcity没有正确加载静态图像文件。将\webapps\ROOT重新命名为\webapps\teamcity是我设置的关键。为了以防万一,下面是为teamcity服务器设置反向代理的方法。
    location /teamcity/ {
            proxy_pass http://teamcity-server.domain.com/teamcity/;
    }
    <Location /teamcity>
            ProxyPass http://teamcity-server.domain.com/teamcity
            ProxyPassReverse http://teamcity-server.domain.com/teamcity
    </Location>
<!DOCTYPE html>
<html>
<head>
  <title>TeamCity</title>
  <meta http-equiv="refresh" content="0;url=/teamcity/overview.html"/>
</head>
<body>
  <!-- no content -->
</body>
</html>