Proxy nginx代理背后的TeamCity
我正试图在nginx背后建立TeamCity。我想。。。要重定向到…,但即使nginx成功执行此操作,登录页面返回的引用如下所示: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
<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
将在urlhttp://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>