大部分時候,我們的Tomcat服務(wù)器都不是部署在本機(jī),那么怎么樣不通過ftp/sftp方式來將war包部署到Tomcat容器呢?
Tomcat有提供Web頁面管理應(yīng)用的功能。
我們來看看怎么配置實(shí)現(xiàn)該功能。
進(jìn)入tomcat默認(rèn)頁面時有“server status”、“manager app”、“Host manager”三個選項(xiàng)如圖:
圖1
默認(rèn)情況下,點(diǎn)擊會跳轉(zhuǎn)到401 Unauthorized報錯頁面
圖2
錯誤信息有提示請檢查conf/tomcat-users.xml文件是否已配置。并且給出了配置示例(這里提醒大家,在任何時候出現(xiàn)錯誤頁面,務(wù)必先仔細(xì)閱讀錯誤信息,很多時候直接在錯誤信息中就能找到解決方案)
圖3
現(xiàn)在我們來配置manager app權(quán)限
進(jìn)入tomcat下的conf目錄,打開tomcat-users.xml文件
找到文件在末尾,在</tomcat-users>上一行插入如下配置:
<role rolename=”manager-gui”/>
<user username=”admin” password=”admin1234″ roles=”manager-gui”/>
保存文件,退出。重啟tomcat該配置即可生效(“server status”、“Host manager”配置類似,參照報錯頁面的提示信息進(jìn)行配置即可)
重新訪問tomcat地址,點(diǎn)擊“manager app”,如果使用的是tomcat7以下(含7),這時會彈出一個登錄框,輸入前面配置的用戶名密碼即可登錄,管理app。包括war包服務(wù)的啟動、停止、reload、undeploy以及配置session的失效時間。
如果使用的是tomcat8以上,此時會報403 permission deny。
Tomcat8配置管理員后仍然報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"/>
同時還需要修改,如無新建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>
無須重啟tomcat即可生效。
正??稍L問時的頁面如下圖:
圖4
接下來我們來看下怎么發(fā)布。
進(jìn)入到manager app頁面后,往下滑動頁面到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īng)用,點(diǎn)擊“undeploy”先取消部署。
通過以上配置后,基本上在發(fā)布版本的時候不會有什么問題,增加這個配置的好處就是當(dāng)持續(xù)集成的服務(wù)器與tomcat不在同一服務(wù)器時,可以通過配置,實(shí)現(xiàn)自動部署(當(dāng)然方案不是唯一,也可以通過ftp、ssh方式部署,當(dāng)時個人認(rèn)為這是最簡單的方式)
但是在實(shí)際的項(xiàng)目過程中我們會發(fā)現(xiàn)war包的大小往往達(dá)到幾十上百M(fèi),這時發(fā)布會出現(xiàn)失敗,原因是tomcat默認(rèn)最大只允許上傳50M的文件,這時候我們需要去修改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需要開放到公網(wǎng)環(huán)境,建議將webapps目錄刪除
或者增加ip白名單過濾
配置可以參照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)教程見以下內(nèi)容:
CentOS 6.6下安裝配置Tomcat環(huán)境 http://www.haoyitu.cn/Linux/2015-08/122234.htm
RedHat Linux 5.5安裝JDK+Tomcat并部署Java項(xiàng)目 http://www.haoyitu.cn/Linux/2015-02/113528.htm
Tomcat權(quán)威指南(第二版)(中英高清PDF版+帶書簽) http://www.haoyitu.cn/Linux/2015-02/113062.htm
Tomcat 安全配置與性能優(yōu)化 http://www.haoyitu.cn/Linux/2015-02/113060.htm
Linux下使用Xshell查看Tomcat實(shí)時日志中文亂碼解決方案 http://www.haoyitu.cn/Linux/2015-01/112395.htm
CentOS 64-bit下安裝JDK和Tomcat并設(shè)置Tomcat開機(jī)啟動操作步驟 http://www.haoyitu.cn/Linux/2015-01/111485.htm
Ubuntu 16.04下安裝Tomcat 8.5.9 http://www.haoyitu.cn/Linux/2017-06/144809.htm
Tomcat中session的管理機(jī)制 http://www.haoyitu.cn/Linux/2016-09/135072.htm