2017-03-02 89 views
4

我們有一個Tomcat應用服務器和一個運行Apache和mod_jk的單一前端Web服務器。我們是否可以添加第二個前端Web服務器,它指向同一個應用程序服務器並運行Apache和mod_jk?指向同一個Tomcat worker的多個Apache mod_jk服務器?

我們不希望出於負載平衡的原因這樣做。相反,這是出於移民的原因。新的Web服務器將是一個完全不同的操作系統,並將使用不同的SSO身份驗證模塊。我們希望能夠對其進行分級和測試,切換DNS條目以使其生效,並停用舊服務器。

目前workers.properties文件看起來是這樣的:

worker.list=worker1 
worker.worker1.type=ajp13 
worker.worker1.host=10.x.x.x 
worker.worker1.port=8009 

我可以只複製該配置到第二Web服務器?

我對此沒有任何經驗或背景,但已被要求協助進行服務器遷移,並且盡我所能提供幫助。

我一直在閱讀mod_jk和Tomcat的文檔。我已經找到了關於將單個mod_jk實例指向多個Tomcat應用程序服務器的各種文檔,但是沒有任何描述與此相反的東西,這正是我想要完成的任務嗎?

這可能嗎?

編輯:我應該注意到,我們沒有任何訪問Tomcat服務器的權限,因爲它由第三方供應商管理。我確信如果我們問他們他們會做出改變,但我們沒有能力自己登錄。

+0

是否可以使用代理服務器來處理遷移過程?看到相同的haproxy。 –

回答

2

是的,當然可以。我做了好幾次,甚至只是改變Apache提供的靜態文件(js,images,css),並用不同的「皮膚」來測試Tomcat應用程序。

通常,當構建高可用性系統時,不僅Tomcat或任何其他後端服務器得到複製,前端Apache或IIS或其他任何使用的內容也會得到複製。

正如你所說,只需要複製Apache httpd's * .conf文件中的workers.properties文件和映射規則即可。

另外,與tomcat管理團隊一起檢查一下,到Tomcat的AJP端口的傳入連接不受網絡規則或防火牆的限制,只讓舊的Apache能夠訪問Tomcat。

2

是 - 複製將是最簡單的。最重要的**是保持工人的名字相同。

一個問題是確保Tomcat有足夠的連接可供兩個Web服務器處理。正常的默認值通常足夠高,但如果您嘗試進行壓力測試,則tomcat服務器可能需要Web服務器上可用的工作人員總數。但是,如果你沒有足夠的空間,Tomcat確實會向日志寫入警告。

**最重要的 - 好吧 - 沒有那麼重要,因爲您沒有使用粘性會話。但是,如果您在Web服務器之間切換時嘗試使用2個tomcats進行此實驗,可能會引起混淆。

0

我可以將該配置複製到第二個Web服務器上嗎?

是肯定的,因爲你想打同一Tomcat服務器,所以你只需將worker.properties從Apache實例1複製到Apache實例2.如果只有4個屬性再沒有什麼,但如果你有一些屬性,如worker.worker1.cachesize=10worker.worker1.cache_timeout=600,你想玩,然後改變它。但是底線是因爲你想命中相同的Tomcat實例,所以你可以簡單地複製。

以非tomcat方式瞭解它 - 您可以擁有超過1個HTTP Web服務器,如Apache攔截所有請求,然後將其轉發到同一個應用程序或Web服務器。然而,這並不常見,因爲常見的事情是Web服務器負載均衡後端應用程序服務器的請求。

我一直在閱讀mod_jk和Tomcat的文檔。我有 發現各種文檔指向一個mod_jk實例 多個Tomcat應用程序服務器,但沒有任何描述 相反,這正是我想要完成的?

這可能嗎?

你不能在任何閱讀的發現,因爲你正在嘗試是一個角落的情況下,一般人配置多個Tomcat工人服務的servlet代表某個web服務器,以實現負載均衡,虛擬託管等

你提到你正在做這一切爲了測試在不同的操作系統上運行的Apache和使用不同的SSO,我假設沒有硬件負載平衡器坐在你的Web服務器(Apache)之前,所以你將如何擊中你的新Apache?我認爲你需要明確地這樣做,因爲你當前的URL將指向你的第一個Apache,所以爲了達到第二個/新的Apache,你需要給你的測試者/用戶包含第二個/新的端點(IP:端口)的URL Apache的。即使你在本地完成所有這些工作,仍然需要在不同的端口上監聽第二個Apache,或者可能是不同的IP,但這並不常見。

相關問題