AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 683384
Accepted
dukeofgaming
dukeofgaming
Asked: 2015-04-17 21:53:35 +0800 CST2015-04-17 21:53:35 +0800 CST 2015-04-17 21:53:35 +0800 CST

如何在单个服务器中安装多个 Atlassian 应用程序?

  • 772

好的,这是一个两部分的问题。

我从一家托管公司获得了一个带有 CentOS 的非托管 VPS,以便安装几个 Atlassian 工具,但是,我遇到了一个问题,即在启动第二个应用程序时,第一个应用程序开始崩溃。

到目前为止,我已经安装了 Confluence(在 8090 端口上运行)、JIRA(在 8080 上运行)和 Crowd(我不记得的其他一些端口),但我一次只能运行一个。我尝试设置反向代理,但这似乎不起作用。

在进行一些研究时,我发现这显然是不可能的: https ://confluence.atlassian.com/display/JIRA/Deploying+Multiple+Atlassian+Applications+in+a+Single+Tomcat+Container https://confluence。 atlassian.com/display/DOC/Installing+Confluence+and+JIRA+Together

我觉得这很奇怪,因为我认为每个 Atlassian 应用程序都带有它自己的 Tomcat ......所以我想知道我是否只需要找到一种方法来“使用不同的 Tomcat 容器”,但我很愚蠢,我什至没有知道这意味着什么(是的,我使用了谷歌,他们什么也没做)。

所以,第 1 部分:我是否遗漏了什么?或者没有办法以可接受的方式做到这一点

我想我找到了一个解决方案,linux容器:

http://blogs.atlassian.com/2013/06/deploy-java-apps-with-docker-awesome/ http://blogs.atlassian.com/2015/01/stash-docker/ http://blogs. atlassian.com/2013/11/docker-all-the-things-at-atlassian-automation-and-wiring/

因为它们似乎隔离了正在运行的环境,甚至使您能够在容器和操作系统之间设置网络路由。

那么,第 2 部分:linux 容器 / docker 是我的问题的公认解决方案吗?

老实说,我不想租几台服务器...

tomcat
  • 3 3 个回答
  • 2838 Views

3 个回答

  • Voted
  1. Cameron Kerr
    2015-04-18T01:56:53+08:002015-04-18T01:56:53+08:00

    这当然是可能的,但是您将使用三个不同的 Tomcat 容器。

    每个产品都可以独立运行。IIRC,像这样的东西

    /.../crowd/bin/start_crowd.sh
    /.../jira/bin/start-jira.sh
    /.../confluence/bin/start-confluence.sh
    

    比如说,您会希望 Apache httpd 作为反向代理运行。所以/crowd 指向你的crowd 端口,/jira 指向你的jira 端口,/confluence 指向你的confluence 端口。

    这些路径将是错误的,但希望您能理解(使用 /.../ 是您解压缩产品的任何位置)。

    您也可以让他们使用相同或不同的 JAVA_HOME,如果负责运行应用程序的人员/团队与管理操作系统的人员/团队不同,这将很有用。

    我有一个合适的启动脚本来启动整个堆栈(按顺序排列 Crowd、Jira 和 Confluence,并在启动下一个之前测试一个是否准备就绪)。它是为 RHEL 5 编写的。如果需要,请致电;它可以节省修补期间的时间。

    • 1
  2. ALex_hha
    2015-04-18T02:08:43+08:002015-04-18T02:08:43+08:00

    目前我正在使用 apache 作为反向代理和 5 个 jira 实例。

    <VirtualHost *:80>
        ServerName jira1.example.net
    
        ProxyTimeout 300
        ProxyRequests Off
        ProxyPreserveHost On
    
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
    
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
    
        <Location />
            Order allow,deny
            Allow from all
        </Location>
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName jira2.example.net
    
        ProxyTimeout 300
        ProxyRequests Off
        ProxyPreserveHost On
    
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
    
        ProxyPass / http://127.0.0.1:8181/
        ProxyPassReverse / http://127.0.0.1:8181/
    
        <Location />
            Order allow,deny
            Allow from all
        </Location>
    </VirtualHost>
    

    您只需将每个 jira/confl/crowd 实例绑定到唯一的端口。对于每个 jira 实例,您应该编辑 atlassian/jira/conf/server.xml

    <Service name="Catalina">
       <Connector port="8080"
          maxThreads="150"
          minSpareThreads="25"
          connectionTimeout="20000"
    
          address="127.0.0.1"
          proxyName="jira1.example.net"
          proxyPort="80"
          scheme="http"
    
          enableLookups="false"
          maxHttpHeaderSize="8192"
          protocol="HTTP/1.1"
          useBodyEncodingForURI="true"
          redirectPort="8443"
          acceptCount="100"
          disableUploadTimeout="true"/>
    
    
    <Service name="Catalina">
       <Connector port="8181"
          maxThreads="150"
          minSpareThreads="25"
          connectionTimeout="20000"
    
          address="127.0.0.1"
          proxyName="jira2.example.net"
          proxyPort="80"
          scheme="http"
    
          enableLookups="false"
          maxHttpHeaderSize="8192"
          protocol="HTTP/1.1"
          useBodyEncodingForURI="true"
          redirectPort="8443"
          acceptCount="100"
          disableUploadTimeout="true"/>
    
    • 1
  3. Best Answer
    vtorhonen
    2015-04-29T07:32:19+08:002015-04-29T07:32:19+08:00

    我遇到了一个问题,当启动第二个应用程序时,第一个应用程序开始崩溃。

    您没有提及您的 VPS 的任何系统规格。对我来说,这听起来像你的内存不足。您的意思是当应用程序崩溃时,JVM 不再显示在进程列表中?您应该检查dmesgJVM 是否被 OOM 杀手杀死的输出。

    我觉得这很奇怪,因为我认为每个 Atlassian 应用程序都带有它自己的 Tomcat ......所以我想知道我是否只需要找到一种方法来“使用不同的 Tomcat 容器”,

    所有 Atlassian 应用程序都与 Tomcat 捆绑在一起。您也可以下载 WAR 包中的应用程序。如果愿意,您可以将这些包部署到您自己的应用程序服务器中,但那是另一回事了。

    将所有应用程序放入一个 Tomcat 容器中是不明智的。根据您的描述,我推断您不熟悉在一个 Tomcat 实例中运行多个应用程序。所以:

    • 您提到的应用程序(Confluence、JIRA、Crowd)具有不同的内存要求,尤其是当您在其中安装插件时。您将很容易遇到 OOM 错误。
    • 当所有应用程序都在它们自己的 Tomcat 实例中运行时,升级应用程序要容易得多。从安全角度来看,这非常重要。
    • 如果要将一个应用程序迁移到另一台服务器,只需将整个 Tomcat 实例与应用程序原样复制即可。只需进行较小的配置更改。

    安装此类环境的非常简短的工作流程:

    • 为所有应用程序创建单独的用户。
    • 下载应用程序(Tomcat 捆绑包版本)并解压缩它们。
    • 配置server.xml以便应用程序在不同的端口中运行。这是至关重要的。否则,只有一个应用程序可以为 Tomcat HTTP/AJP 连接器保留 TCP 端口。每个应用程序使用一个唯一的端口。
    • 为所有应用程序创建虚拟主机。
    • 启动每个应用程序用户的应用程序。

    那么,第 2 部分:linux 容器 / docker 是我的问题的公认解决方案吗?

    这是一种解决方案。你应该考虑你的设置。如果您当前的设置允许您在它们自己的 Tomcat 实例中运行所有应用程序,那么在单独的 Linux 容器中运行它们有什么好处?使用 Docker 对设置进行过度设计是非常容易的。此外,如果您不熟悉 Docker,则必须学习如何使用它。

    • 1

相关问题

  • jvm性能调优技巧/资源?

  • 使 Jakarta 连接器与 IIS 一起工作时出现问题

  • 如何禁用tomcat缓存?我遇到了奇怪的静态文件问题

  • Hudson 无法在 tomcat5 中启动

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve