tomcat web頁面管理應用配置


大部分時候,我們的tomcat服務器都不是部署在本機,那么怎么樣不通過ftp/sftp方式來將war包部署到tomcat容器呢?

 

tomcat有提供web頁面管理應用的功能。

 

我們來看看怎么配置實現該功能。

進入tomcat默認頁面時有“server status”、“manager app”、“Host manager”三個選項如圖:

圖1

默認情況下,點擊會跳轉到401 Unauthorized報錯頁面

圖2

錯誤信息有提示請檢查conf/tomcat-users.xml文件是否已配置。並且給出了配置示例(這里提醒大家,在任何時候出現錯誤頁面,務必先仔細閱讀錯誤信息,很多時候直接在錯誤信息中就能找到解決方案)

圖3

現在我們來配置manager app權限

進入tomcat下的conf目錄,打開tomcat-users.xml文件

找到文件在末尾,在</tomcat-users>上一行插入如下配置:

  <role rolename="manager-gui"/>
  <user username="admin" password="admin1234" roles="manager-gui"/>

保存文件,退出。重啟tomcat該配置即可生效(“server status”、“Host manager”配置類似,參照報錯頁面的提示信息進行配置即可)

重新訪問tomcat地址,點擊“manager app”,如果使用的是tomcat7以下(含7),這時會彈出一個登錄框,輸入前面配置的用戶名密碼即可登錄,管理app。包括war包服務的啟動、停止、reload、undeploy以及配置session的失效時間。

如果使用的是tomcat8以上,此時會報403 permission deny。解決方法見我的另一篇博文:http://www.cnblogs.com/ianduin/p/7113253.html

正常可訪問時的頁面如下圖:

 

圖4

 

接下來我們來看下怎么發布。

進入到manager app頁面后,往下滑動頁面到Deploy欄,如圖:

點擊“select WAR file to upload”后面的“瀏覽”按鈕,選擇需要發布的war包后,點擊“deploy”,war即可發布成功。部署是否成功,需要關注頭部的“Message: ”內容。

 

但是如果該war包已經在服務器上部署,則需要在頁面中找到該應用,點擊“undeploy”先取消部署。

 

通過以上配置后,基本上在發布版本的時候不會有什么問題,增加這個配置的好處就是當持續集成的服務器與tomcat不在同一服務器時,可以通過配置,實現自動部署(當然方案不是唯一,也可以通過ftp、ssh方式部署,當時個人認為這是最簡單的方式)

 

但是在實際的項目過程中我們會發現war包的大小往往達到幾十上百M,這時發布會出現失敗,原因是tomcat默認最大只允許上傳50M的文件,這時候我們需要去修改webapps\manager\WEB-INF\web.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需要開放到公網環境,建議將webapps目錄刪除

或者增加ip白名單過濾

配置可以參照tomcat官方文檔進行配置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>

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM