一、遠程訪問tomcat9.0管理界面的問題
在Linux上安裝tomcat9.0,遠程window主機訪問tomcat管理界面,圖中紅框內的功能不能正常執行,本文描述了問題的解決辦法。
![遠程訪問TOMCAT9.0管理界面報錯的解決辦法](http://p2.ttnews.xyz/loading.gif)
遠程執行tomcat9.0管理功能報錯,Manager App、Host Manager、Server Status不能正常使用
二、Tomcat自帶的應用
安裝tomcat的主機IP為:192.168.187.139。安裝tomcat後,webapps目錄下的應用如下圖,共有5條記錄。
![遠程訪問TOMCAT9.0管理界面報錯的解決辦法](http://p2.ttnews.xyz/loading.gif)
安裝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全局文件,增加紅框中的角色和用戶名及密碼,則在瀏覽器中調用這些應用時,首先需要輸入用戶名和密碼,然後會進入應用的主界面。
修改$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節點。
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應用的配置文件修改,註釋掉遠程訪問配置參數。
manager應用的context.xml,放開遠程訪問限制
下面是Host Manager應用的配置文件context.xml文件的修改,將<valve>註釋掉。
host-manager應用的context.xml,放開遠程訪問限制
這樣註釋掉,就相當於manager和host-manager兩個應用對可見的IP全部開放,都可以訪問,安全性很低。
五、tomcat管理界面,配置IP訪問限制
1、 遠程訪問tomcat管理界面的宿主主機
作為遠程主機訪問tomcat管理界面的Windows宿主機的ip地址、子網掩碼和網絡號
2、 安裝tomcat的Ubuntu虛擬機
安裝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生效。
manager應用的context.xml,配置可以遠程訪問的IP段
下圖所示,拒絕192.168.1.*的IP地址遠程登錄tomcat的管理界面,使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,無法進入,deny生效。
manager應用的context.xml,配置哪些ip地址不允許訪問tomcat管理界面
下圖示例,192.168.187.*的IP地址允許遠程登錄tomcat的管理界面(主控臺),使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,可以正常使用,原因?
manager應用的context.xml,配置哪些IP地址可以訪問tomcat的管理界面
下圖所示,拒絕192.168.187.*的IP地址遠程登錄tomcat的管理界面,使用宿主機192.168.1.110遠程訪問192.168.187.139的tomcat管理界面,無法進入,deny生效,還是?原因?
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應用了。
閱讀更多 IT小小屋 的文章