如何在單個伺服器中安裝多個 Atlassian 應用程序?
好的,這是一個兩部分的問題。
我從一家託管公司獲得了一個帶有 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 不再顯示在程序列表中?您應該檢查
dmesg
JVM 是否被 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,則必須學習如何使用它。