大部分時(shí)候,我們的Tomcat服務(wù)器都不是部署在本機(jī),那么怎么樣不通過(guò)ftp/sftp方式來(lái)將war包部署到Tomcat容器呢?
Tomcat有提供Web頁(yè)面管理應(yīng)用的功能。
我們來(lái)看看怎么配置實(shí)現(xiàn)該功能。
進(jìn)入tomcat默認(rèn)頁(yè)面時(shí)有“server status”、“manager app”、“Host manager”三個(gè)選項(xiàng)如圖:
圖1
默認(rèn)情況下,點(diǎn)擊會(huì)跳轉(zhuǎn)到401 Unauthorized報(bào)錯(cuò)頁(yè)面
圖2
錯(cuò)誤信息有提示請(qǐng)檢查conf/tomcat-users.xml文件是否已配置。并且給出了配置示例(這里提醒大家,在任何時(shí)候出現(xiàn)錯(cuò)誤頁(yè)面,務(wù)必先仔細(xì)閱讀錯(cuò)誤信息,很多時(shí)候直接在錯(cuò)誤信息中就能找到解決方案)
圖3
現(xiàn)在我們來(lái)配置manager app權(quán)限
進(jìn)入tomcat下的conf目錄,打開(kāi)tomcat-users.xml文件
找到文件在末尾,在</tomcat-users>上一行插入如下配置:
<role rolename=”manager-gui”/>
<user username=”admin” password=”admin1234″ roles=”manager-gui”/>
保存文件,退出。重啟tomcat該配置即可生效(“server status”、“Host manager”配置類(lèi)似,參照?qǐng)?bào)錯(cuò)頁(yè)面的提示信息進(jìn)行配置即可)
重新訪問(wèn)tomcat地址,點(diǎn)擊“manager app”,如果使用的是tomcat7以下(含7),這時(shí)會(huì)彈出一個(gè)登錄框,輸入前面配置的用戶名密碼即可登錄,管理app。包括war包服務(wù)的啟動(dòng)、停止、reload、undeploy以及配置session的失效時(shí)間。
如果使用的是tomcat8以上,此時(shí)會(huì)報(bào)403 permission deny。
Tomcat8配置管理員后仍然報(bào)403解決方法:
修改conf/tomcat-users.xml
<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <user username="user" password="password" roles="admin,manager,manager-gui"/>
同時(shí)還需要修改,如無(wú)新建conf/Catalina/localhost/manager.xml 內(nèi)容如下:
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
無(wú)須重啟tomcat即可生效。
正??稍L問(wèn)時(shí)的頁(yè)面如下圖:
圖4
接下來(lái)我們來(lái)看下怎么發(fā)布。
進(jìn)入到manager app頁(yè)面后,往下滑動(dòng)頁(yè)面到Deploy欄,如圖:
點(diǎn)擊“select WAR file to upload”后面的“瀏覽”按鈕,選擇需要發(fā)布的war包后,點(diǎn)擊“deploy”,war即可發(fā)布成功。部署是否成功,需要關(guān)注頭部的“Message: ”內(nèi)容。
但是如果該war包已經(jīng)在服務(wù)器上部署,則需要在頁(yè)面中找到該應(yīng)用,點(diǎn)擊“undeploy”先取消部署。
通過(guò)以上配置后,基本上在發(fā)布版本的時(shí)候不會(huì)有什么問(wèn)題,增加這個(gè)配置的好處就是當(dāng)持續(xù)集成的服務(wù)器與tomcat不在同一服務(wù)器時(shí),可以通過(guò)配置,實(shí)現(xiàn)自動(dòng)部署(當(dāng)然方案不是唯一,也可以通過(guò)ftp、ssh方式部署,當(dāng)時(shí)個(gè)人認(rèn)為這是最簡(jiǎn)單的方式)
但是在實(shí)際的項(xiàng)目過(guò)程中我們會(huì)發(fā)現(xiàn)war包的大小往往達(dá)到幾十上百M(fèi),這時(shí)發(fā)布會(huì)出現(xiàn)失敗,原因是tomcat默認(rèn)最大只允許上傳50M的文件,這時(shí)候我們需要去修改webappsmanagerWEB-INFweb.xml文件
找到
<multipart-config>
<!– 50MB max –>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
一段(大概在53行),將max-file-size、max-request-size值增大即可。
注意:
如果tomcat需要開(kāi)放到公網(wǎng)環(huán)境,建議將webapps目錄刪除
或者增加ip白名單過(guò)濾
配置可以參照tomcat官方文檔進(jìn)行配置http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html
里面有提到:
In addition to the password restrictions, access to the Manager web application can be restricted by the remote IP address or host by adding a RemoteAddrValve or RemoteHostValve. See valves documentation for details. Here is an example of restricting access to the localhost by IP address:
<Context privileged="true"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> </Context>
更多Tomcat相關(guān)教程見(jiàn)以下內(nèi)容:
CentOS 6.6下安裝配置Tomcat環(huán)境 http://www.sfodin.cn/Linux/2015-08/122234.htm
RedHat Linux 5.5安裝JDK+Tomcat并部署Java項(xiàng)目 http://www.sfodin.cn/Linux/2015-02/113528.htm
Tomcat權(quán)威指南(第二版)(中英高清PDF版+帶書(shū)簽) http://www.sfodin.cn/Linux/2015-02/113062.htm
Tomcat 安全配置與性能優(yōu)化 http://www.sfodin.cn/Linux/2015-02/113060.htm
Linux下使用Xshell查看Tomcat實(shí)時(shí)日志中文亂碼解決方案 http://www.sfodin.cn/Linux/2015-01/112395.htm
CentOS 64-bit下安裝JDK和Tomcat并設(shè)置Tomcat開(kāi)機(jī)啟動(dòng)操作步驟 http://www.sfodin.cn/Linux/2015-01/111485.htm
Ubuntu 16.04下安裝Tomcat 8.5.9 http://www.sfodin.cn/Linux/2017-06/144809.htm
Tomcat中session的管理機(jī)制 http://www.sfodin.cn/Linux/2016-09/135072.htm