遠程訪問TOMCAT9.0管理界面報錯的解決辦法

一、遠程訪問tomcat9.0管理界面的問題

在Linux上安裝tomcat9.0,遠程window主機訪問tomcat管理界面,圖中紅框內的功能不能正常執行,本文描述了問題的解決辦法。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

遠程執行tomcat9.0管理功能報錯,Manager App、Host Manager、Server Status不能正常使用

二、Tomcat自帶的應用

安裝tomcat的主機IP為:192.168.187.139。安裝tomcat後,webapps目錄下的應用如下圖,共有5條記錄。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

安裝tomcat後webapps目錄下的應用

1、遠程主機的瀏覽器中輸入下面的url,都能打開docs應用,裡面是tomcat的幫助文檔。

http://192.168.187.139:8080/docs/index.html

http://192.168.187.139:8080/docs

前者輸入全路徑名,主機上實際目錄是:$tomcat主目錄/webapps/docs/index.html。

後者只輸入了域名和應用名,主機上實際目錄是: $tomcat主目錄/webapps/docs,瀏覽器會在docs目錄下查找index.jsp或index.html等文件並執行。

2、 遠程主機的瀏覽器中輸入下面的url,都可以打開examples應用,裡面是tomcat的相關示例程序。

http://192.168.187.139:8080/examples/index.html

http://192.168.187.139:8080/examples

前者實際對應/home/tomcat/apache-tomcat-9.0.30/webapps/examples/index.html

後者只輸入應用名,定位/home/tomcat/apache-tomcat-9.0.30/webapps/examples/

在該目錄下查找index.jsp或index.html等文件並執行。

3、 遠程主機的瀏覽器中輸入下面的url,都可以打開tomcat主控臺

http://192.168.187.139:8080

http://192.168.187.139:8080/index.jsp

前者輸入的只是域名,系統定位$tomcat主目錄/webapps/ROOT子目錄,在ROOT子目錄查找index的jsp或html文件並執行。

後者自動執行ROOT子目錄下的index.jsp程序。

不能象其他應用那樣使用應用名ROOT

4、 在遠程主機的瀏覽器中輸入host-manager和manager應用的url,打不開相關應用,需要進行一些配置才能調用。下面進行描述。

三、tomcat-users配置角色及用戶權限

manager和host-manager是Tomcat自帶的web應用,用來管理自身和管理部署在Tomcat上的應用。默認情況下,manager和host-manager處於禁用狀態。

在 Tomcat安裝目錄/conf/tomcat-users.xml文件中配置用戶和角色權限後才可以使用該web應用。

修改tomcat-users.xml全局文件,增加紅框中的角色和用戶名及密碼,則在瀏覽器中調用這些應用時,首先需要輸入用戶名和密碼,然後會進入應用的主界面。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

修改$tomcat/conf/tomcat-users.xml文件,添加角色和用戶權限

Tomcat-users主要配置角色和用戶,tomcat規定了幾種固定的角色,如下說明:

manager-gui:允許訪問html接口(即URL路徑為/manager/html/*)

manager-script:允許訪問純文本接口(即URL路徑為/manager/text/*)

manager-jmx:允許訪問JMX代理接口(即URL路徑為/manager/jmxproxy/*)

manager-status: 允許訪問狀態頁面(即URL路徑為/manager/status/*)

URL路徑和webapps下應用程序的存儲目錄不是一回事,例如manager應用程序目錄結構中並不存在html目錄,運行manager應用的url執行路徑中有html節點。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager-gui訪問html接口的url路徑示例

Tomcat-users的User節點的說明:一個user節點表示一個用戶,username和password表示登錄的用戶名和密碼,屬性roles表示該用戶所具備的權限。上例中定義了admin和deploy兩個用戶,兩個用戶的用戶名/密碼/角色權限不同。

四、tomcat管理界面,放開遠程IP訪問限制

應用級配置,要達到tomcat管理界面(主控臺)中的manager和host manager可以遠程訪問,需要將manager或host manager應用下的META-INF/context.xml中的<valve>註釋掉。

下面是manager應用的配置文件修改,註釋掉遠程訪問配置參數。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager應用的context.xml,放開遠程訪問限制

下面是Host Manager應用的配置文件context.xml文件的修改,將<valve>註釋掉。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

host-manager應用的context.xml,放開遠程訪問限制

這樣註釋掉,就相當於manager和host-manager兩個應用對可見的IP全部開放,都可以訪問,安全性很低。

五、tomcat管理界面,配置IP訪問限制

1、 遠程訪問tomcat管理界面的宿主主機

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

作為遠程主機訪問tomcat管理界面的Windows宿主機的ip地址、子網掩碼和網絡號

2、 安裝tomcat的Ubuntu虛擬機

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

安裝tomcat的Ubuntu虛擬機的IP地址、子網掩碼和網絡號

3、 配置tomcat應用級context.xml,測試ip訪問限制

應用級配置,可以通過allow(允許)和deny(拒絕),確保有些IP地址可以遠程訪問tomcat管理界面,有些IP地址不允許,在tomcat中實現對IP訪問的限制。

下圖示例,192.168.1.*的IP地址允許遠程登錄tomcat的管理界面(主控臺),使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,可正常使用,allow生效。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager應用的context.xml,配置可以遠程訪問的IP段

下圖所示,拒絕192.168.1.*的IP地址遠程登錄tomcat的管理界面,使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,無法進入,deny生效。

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager應用的context.xml,配置哪些ip地址不允許訪問tomcat管理界面

下圖示例,192.168.187.*的IP地址允許遠程登錄tomcat的管理界面(主控臺),使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,可以正常使用,原因?

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager應用的context.xml,配置哪些IP地址可以訪問tomcat的管理界面

下圖所示,拒絕192.168.187.*的IP地址遠程登錄tomcat的管理界面,使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,無法進入,deny生效,還是?原因?

遠程訪問TOMCAT9.0管理界面報錯的解決辦法

manager應用的context.xml,配置哪些ip地址不允許訪問tomcat的manager管理界面

作為遠程訪問tomcat管理界面的windows宿主機,其IP地址是192.168.1.110/24,網絡號為192.168.1.0;作為服務器的tomcat主機,IP地址為192.168.187.139/28,網絡號為192.168.187.128。看似兩個網絡。

上述測試有合理的部分,也有讓人迷惑的部分,可能還是對宿主機和虛擬機的IP/網絡等知識不夠深入。另,應該可以配置到具體的IP地址,但配置地址段可以正常執行,具體的地址有問題。

六、配置結果驗證

從遠程登錄tomcat的管理界面,實現tomcat和應用的管理,還是測試通過了。

http://192.168.187.139:8080/manager/index.jsp 可以執行manager應用了

http://192.168.187.139:8080/manager/index.jsp 可以執行host-manager應用了

http://192.168.187.139:8080/index.jsp 集成了多個應用,集成界面可以調用manager和host-manager應用了。


分享到:


相關文章: