Tomcat

如何在單個伺服器中安裝多個 Atlassian 應用程序?

  • April 28, 2015

好的,這是一個兩部分的問題。

我從一家託管公司獲得了一個帶有 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 容器”,但我很愚蠢,我什至沒有知道這意味著什麼(是的,我使用了Google,他們什麼也沒做)。

所以,第 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 是我的問題的公認解決方案嗎?

老實說,我不想租幾台伺服器…

我遇到了一個問題,當啟動第二個應用程序時,第一個應用程序開始崩潰。

您沒有提及您的 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,則必須學習如何使用它。

引用自:https://serverfault.com/questions/683384