Tomcat(四):tomcat圖形管理和身份認證

来源:https://www.cnblogs.com/f-ck-need-u/archive/2018/02/03/8409723.html
-Advertisement-
Play Games

tomcat和大多數服務程式的管理不一樣,tomcat更適合使用圖形管理界面進行管理,例如在不停止tomcat的情況下動態部署新的webapp或重新載入webapp。如果不使用圖形管理工具,tomcat雖然也可以配置自動部署(autoDeploy="true"),但我們卻無法掌握它重新部署的時刻。 ...


tomcat和大多數服務程式的管理不一樣,tomcat更適合使用圖形管理界面進行管理,例如在不停止tomcat的情況下動態部署新的webapp或重新載入webapp。如果不使用圖形管理工具,tomcat雖然也可以配置自動部署(autoDeploy="true"),但我們卻無法掌握它重新部署的時刻。

圖形管理工具的官方手冊:Manager App HOW-TO

直接在瀏覽器中輸入tomcat所在機器的ip地址及其connector監聽埠,即可進入tomcat的圖形管理界面,也是歡迎界面。這個歡迎頁面是tomcat engine中的預設Host組件localhost提供的頁面,該資源的路徑為$catalina_home/webapps/ROOT/index.jsp。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

這3個按鈕對應的是tomcat預設就安裝好的3個管理工具:狀態查看工具、webapp管理工具(非常重要)和虛擬主機管理工具。其中前2個工具都由名為manager的webapp提供,第三個工具由名為host-manager的webapp提供,因此後文將認為只提供了兩個管理程式:manager和host-manager。它們的路徑都在webapps目錄下。

[root@xuexi tomcat]# ls webapps/
docs  examples  host-manager  manager  ROOT

點擊這3個按鈕,分別可以進入對應的管理界面。但第一次點擊,會出現"403 Access denied"錯誤,並提示要去配置conf/tomcat-users.xml,添加相應許可權的角色。

對於這兩個管理程式而言,總共有以下幾種預定義角色:其中後兩項角色是上一圖中"Host Manager"需要的角色。

  • manager-gui - allows access to the HTML GUI and the status pages
  • manager-script - allows access to the text interface and the status pages
  • manager-jmx - allows access to the JMX proxy and the status pages
  • manager-status - allows access to the status pages only
  • admin-gui - allows access to the HTML GUI
  • admin-script - allows access to the text interface

對於使用manager-gui角色的用戶,強烈建議不要再為其賦予manager-script和manager-jmx角色。

這些角色名稱rolename已經預定義在各管理程式內的web.xml中:

[root@xuexi tomcat]# grep 'role-name' webapps/manager/WEB-INF/web.xml
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    <role-name>manager-gui</role-name>
    <role-name>manager-script</role-name>
    <role-name>manager-jmx</role-name>
    <role-name>manager-status</role-name>

[root@xuexi tomcat]# grep 'role-name' webapps/host-manager/WEB-INF/web.xml 
       <role-name>admin-script</role-name>
       <role-name>admin-gui</role-name>
    <role-name>admin-gui</role-name>
    <role-name>admin-script</role-name>

因此,在各管理程式的身份驗證文件中可以直接引用這幾個名稱。那麼如何配置身份驗證,使得只有通過驗證的用戶才能使用這些管理工具?根據前面的錯誤頁面提示,只需在$catalina_home/conf/tomcat-user.xml中配置即可。

例如,使用預定義好的角色進行配置。

<user username="malongshuai" password="123456" roles="manager-gui,admin-gui"/>

再重啟tomcat即可。但是,這樣的配置在tomcat 7版本能成功,在tomcat8上不會成功。查看catalina.home下的.RUNING文件,提示如下內容:

For example, the standard manager web application can be kept in
CATALINA_HOME/webapps/manager and loaded into CATALINA_BASE by using
the following trick:

 * Copy the CATALINA_HOME/webapps/manager/META-INF/context.xml
   file as CATALINA_BASE/conf/Catalina/localhost/manager.xml

 * Add docBase attribute as shown below.

The file will look like the following:

  <?xml version="1.0" encoding="UTF-8"?>
  <Context docBase="${catalina.home}/webapps/manager"
    antiResourceLocking="false" privileged="true" >
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.0\.0\.1" />
  </Context>

它要求我們將CATALINA_HOME/webapps/manager/META-INF/context.xml複製到CATALINA_BASE/conf/Catalina/localhost/manager.xml,並修改其內容。既然知道了操作過程,所以在tomcat 8中也就不用去複製了,這裡直接創建文件並向裡面寫入內容即可,註意文件名一定不能錯誤。

[root@xuexi tomcat]# mkdir -p conf/Catalina/localhost
[root@xuexi tomcat]# cat conf/Catalina/localhost/manager.xml    
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/manager" 
        antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
</Context>

此處allow定義的是允許所有主機訪問此管理狀態頁面。還可以使用allow="127\.0\.0\.1"定義只有本機才能訪問,allow="192\.168\.100.*"定義只有192.168.100網段的主機才能訪問。

定義了manager.xml文件後,也僅能訪問前兩個頁面,因為前兩個頁面是manager程式提供的,訪問時需要在uri中使用/manager,或直接點擊上面的按鈕。以下是管理webapp的圖形管理工具頁面,從圖中可以看出,可以輕鬆管理某個webapp的啟動、停止、部署、重新部署、部署本地項目等。

第三個頁面是管理虛擬主機的圖形頁面,訪問時的uri部分是/host-manager。但要使用它,也需要將context.xml複製到特定路徑下,並修改一點內容。如下:

[root@xuexi tomcat]# cp conf/Catalina/localhost/manager.xml conf/Catalina/localhost/host-manager.xml
[root@xuexi tomcat]# sed -i s/manager/host-manager/ conf/Catalina/localhost/host-manager.xml

下圖是虛擬主機的管理頁面。

以上是將文件manager.xml或host-manager.xml複製到CATALINA_BASE/conf/Catalina/localhost/下,這是管理所有虛擬主機,如果想要單獨管理某虛擬主機,則可以將文件按照$CATALINA_BASE/conf/[enginename]/[hostname]路徑進行複製。

 

回到Linux系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
回到網站架構系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7576137.html
回到資料庫系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7586194.html
轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/8409723.html

註:若您覺得這篇文章還不錯請點擊右下角推薦,您的支持能激發作者更大的寫作熱情,非常感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Controller是MVC中比較重要的一部分。幾乎所有的業務邏輯都是在這裡進行處理的,並且從Model中取出數據。在ASP.NET MVC Preview5中,將原來的Controller類一分為二,分為了Controller類和ControllerBase類。Controller類繼承自Cont ...
  • 配置文件中紅色標註是必填項。 ...
  • 在場景中除預設camera和light外,添加cube物體,並掛載腳本。 值得註意的是ScreenToWorldPoint方法並未給z軸進行賦值所以需要自己給z軸賦值。v.z並不是cube的z軸而是攝像機和cube的距離。 效果圖: ...
  • 本文介紹Linux環境安裝Nginx,這裡用的Linux系統是CentOS 7.2. 1. 從Nginx官網下載Nginx。這裡用的版本為:1.13.6. 2. 將下載下來的Nginx上傳到Linux上,這裡以/opt/nginx目錄為例。運行“tar -zxvf nginx-1.13.6.tar. ...
  • 本人初學STM32F1系列單片機,打算上手HAL庫,應大四學長之約在寒假製作一個音樂播放器(MP3)。STM32F103RCT6是學長選的MCU型號,本來想著自己畫板子,但是晶元管腳太細不好焊接就放棄了。最終在某寶上找到了一款STM入手的開發板。但是商家提供的LCD驅動(LCD使用硬體SPI介面,具 ...
  • 在linux系統下我們經常使用ll、la命令。但在mac系統時缺沒有。 提示:-bash: ll: command not found。 這是因為ll、la不是真的命令,而是一些常用命令和參數搭配的別名。所以我們在Mac OS下配置下就好了。 1、跳到個人目錄下麵 lunadeMacBook-Air ...
  • 孤兒進程: 因父親進程先退出而導致一個子進程被 init 進程收養的進程為孤兒進程,即孤兒進程的父親更改為 init 進程,該進程在孤兒進程退出後回收它的內核空間資源。 僵死進程: 進程已經退出,但它的父親進程還沒有回收內核資源的進程為僵死進程,即該進程在內核空間的 PCB(進程式控制制塊) 沒有釋放。 ...
  • 第一種方法 一、下載解壓 二、安裝開發包組和相關依賴包 三、編譯apr和apr-util httpd是依賴於apr的,所以先編譯apr和apr-util 1、編譯apr 2、編譯apr-util 四、編譯httpd 五、環境變數 六、創建用戶和組 七、修改配置文件 八、啟動腳本 第二種方法 一、下載 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...