一臺服務(wù)器上部署多個 tomcat 如果不注意修改 tomcat 的配置是會釀成大禍的刹孔。
之前 saas 項目上線的時候為了提高應(yīng)用的高可用性,決定部署兩個應(yīng)用 saas-prod01和 saas-prod02,以為僅僅修改訪問應(yīng)用的端口號就可以了,于是只將 saas-prod01和 saas-prod02 中tomcat 下的 conf/server.xm 中的HTTP 訪問端口修改了就進(jìn)行上線,本以為萬事大吉的時候,我用 ps
突然發(fā)現(xiàn)服務(wù)器上只有一個 saas-prod01 項目在運行, 我以為是另一個服務(wù)掛了,于是緊急重啟第saas-prod2,驚奇的發(fā)現(xiàn) saas-prod01又掛了,我知道這其中肯定是配置文件有問題涎才。
各種谷歌各種查資料后發(fā)現(xiàn),原來 tomcat 中的 server.xml 中有個一個掌管 tomcat 關(guān)閉的端口默認(rèn)是8005,如果原封不動兩個 saas 應(yīng)用的 tomcat 都會監(jiān)聽8005端口,當(dāng)朝一個 saas 項目發(fā)送 shutdown 命令的時候另一個 saas項目同樣會接收到這個命令,于是這兩個 saas 項目就都停止了。
還有生產(chǎn)環(huán)境不應(yīng)該開啟遠(yuǎn)程調(diào)試功能,所以不應(yīng)該在配置文件中開啟該功能,不然當(dāng)你遠(yuǎn)程調(diào)試的時候,生產(chǎn)環(huán)境客戶的請求就會被你本地攔截,不想被公司開除的話,就小心點鼓拧。
所以如果想要在一臺服務(wù)器中部署多個 tomcat 應(yīng)該注意修改不同應(yīng)用的配置文件的端口號不要沖突(誰讓 tomcat 默認(rèn)不報端口沖突呢,人家統(tǒng)治者)
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />