CentOS 7.5安裝配置Tomcat詳解(三)

Tomcat常用配置

1、配置Server Status、Manager AppHost Manager:

# vim /usr/local/tomcat/conf/tomcat-users.xml,在末尾</tomcat-users>標籤上方新增如下代碼:

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

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

# catalina.sh stop  # catalina.sh configtest  # catalina.sh start  # ss -tunlp | grep -w :8080

點擊“Server Status”:

image.png

image.png

點擊“Manager App”:

image.png

image.png

點擊“Host Manager”:

image.png

image.png

備註:用戶名和密碼均爲tomcat123456Server StatusManager App共用一個驗證規則

2、Tomcat訪問靜態資源:

# cd /usr/local/tomcat/webapps/ROOT

# mkdir -pv images

# cd images

上傳一張圖片test.png

瀏覽器中訪問http://192.168.1.145:8080/images/test.png

image.png

3、 在一臺服務器中同時部署多個版本的JDKTomcat

(1)取消之前配置的CATALINA_HOME環境變量:# cd /etc/profile.d  # mv tomcat.sh tomcat.sh.bak  # logout

(2)查看系統中已安裝的JDKTomcat版本:# /usr/local/tomcat/bin/catalina.sh version

image.png

(3)解壓jdk-7u80-linux-x64.tar.gz# tar -xf jdk-7u80-linux-x64.tar.gz

(4)解壓apache-tomcat-7.0.91.tar.gz# tar -xf apache-tomcat-7.0.91.tar.gz

(5)修改apache-tomcat-7.0.91的端口號:# vim /apache-tomcat-7.0.91/conf/server.xml

Ø  SHUTDOWN默認端口8005:接收服務器關閉指令的端口,修改爲8006

Ø  HTTP默認端口8080:接收HTTP請求的端口,修改爲8081

Ø  HTTPS默認端口(redirectPort8443HTTPS協議請求處理端口,修改爲8444

Ø  AJP默認端口8009:接收AJP請求的端口,修改爲8010

(6)修改apache-tomcat-7.0.91的腳本文件:

# vim /apache-tomcat-7.0.91/bin/setclasspath.sh,第2行新增代碼:export JAVA_HOME=/jdk1.7.0_80

# vim /apache-tomcat-7.0.91/bin/catalina.sh,第2行新增代碼:export JAVA_HOME=/jdk1.7.0_80

(7)啓動apache-tomcat-7.0.91

# /apache-tomcat-7.0.91/bin/version.sh

image.png

# /apache-tomcat-7.0.91/bin/startup.sh

image.png

# ss -tunlp

image.png

# ps -ef | grep java

image.png

(8)瀏覽器中分別訪問apache-tomcat-7.0.91apache-tomcat-8.0.53

image.png

image.png

4、使用Manager App部署本地war包:

image.png

點擊“選擇文件”,找到本地需要部署的wartest.war,再點擊“Deploy”:

image.png

直接熱部署成功,瀏覽器中訪問http://192.168.1.145:8080/test

image.png

# ls -lh /usr/local/tomcat/webapps

image.png

還可以通過Manager App停止、重載和解除部署應用程序

image.png

image.png

點擊“Undeploy”按鈕後會自動刪除此應用程序:

image.png

image.png

5、自定義Host虛擬主機:

# vim /usr/local/tomcat/conf/server.xml</Host></Engine>之間新增如下代碼:

<Host name="web.qiuyue.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="" reloadable="true" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs" prefix="web_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

# mkdir -pv /data/{webapps,logs}

# mkdir -pv /data/webapps/myapp/{META-INF,WEB-INF}

# mkdir -pv /data/webapps/myapp/WEB-INF/{classes,lib}

# vim /data/webapps/myapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

<head>

<title>JSP Test Page</title>

</head>

<body>

<% out.println("Hello JSP"); %>

</body>

</html>

備註:Java WebApp目錄結構

Ø  META-INF/:用於存放應用程序自用的context.xml,是應用程序的私有資源目錄,其內部的所有文件和子目錄均不能被客戶端公開訪問,只有服務端可以訪問

Ø  WEB-INF/:用於存放應用程序的配置文件web.xml(程序結構描述符文件),是應用程序的私有資源目錄,其內部的所有文件和子目錄均不能被客戶端公開訪問,只有服務端可以訪問

  u  classes/:用於存放此應用程序的私有類

  u  lib/:用於存放此應用程序的私有類,且被打包爲jar格式類

Ø  index.jsp:應用程序的主頁

# catalina.sh stop  # catalina.sh configtest  # catalina.sh start  # ss -tunlp | grep -w :8080

修改本地Windows 10C:\Windows\System32\drivers\etc\hosts文件,末尾新增如下代碼:

192.168.1.145 web.qiuyue.com

瀏覽器中訪問:

http://web.qiuyue.com:8080/myapp/

image.png

http://192.168.1.145:8080

image.png

備註:使用IP訪問的就是<Engine name="Catalina" defaultHost="localhost">中名爲localhost的默認主機

6、在示例5的基礎上基於IP實現訪問控制,拒絕IP192.168.1.151的主機訪問:

# vim /usr/local/tomcat/conf/server.xml,新增如下紅色部分的代碼:

<Host name="web.qiuyue.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="" reloadable="true" />

<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.1.151" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs" prefix="web_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

備註:Valve寫在Context中不會生效,與deny對應的是allow

# catalina.sh stop  # catalina.sh configtest  # catalina.sh start  # ss -tunlp | grep -w :8080

使用3臺主機進行測試:

192.168.1.151的瀏覽器中訪問:

http://web.qiuyue.com:8080/myapp/

image.png

http://192.168.1.145:8080

image.png

192.168.199.157Windows 10,使用×××,同樣需要修改hosts文件)的瀏覽器中訪問:

http://web.qiuyue.com:8080/myapp/

image.png

CentOS 7.5主機192.168.1.146上編輯/etc/hosts文件,末尾新增代碼:192.168.1.145 web.qiuyue.com

# curl http://web.qiuyue.com:8080/myapp/

image.png

7、在示例5的基礎上配置HTTPS

(1)配置HTTPS之前訪問http://web.qiuyue.com:8080/myapp/

image.png

(2)生成SSL證書:

# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/conf/tomcat.keystore -validity 36500

image.png

備註:各選項含義

Ø  -alias:表示證書的別名

Ø  -keyalg RSA:表示使用RSA密鑰算法

Ø  -keystore:證書保存的位置

Ø  -validity:證書的有效時間

# keytool -importkeystore -srckeystore /usr/local/tomcat/conf/tomcat.keystore -destkeystore /usr/local/tomcat/conf/tomcat.keystore -deststoretype pkcs12

image.png

備註:上述所有涉及到的密碼均爲Root_123456

# ls -lh /usr/local/tomcat/conf | grep keystore

image.png

(3)修改主配置文件server.xml

# vim /usr/local/tomcat/conf/server.xml,取消如下代碼的註釋並修改:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />

-->

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/tomcat/conf/tomcat.keystore" keystorePass="Root_123456" />

備註:可以將端口號修改爲443

(4)將所有http請求自動跳轉至https請求,修改配置文件web.xml

# cd /usr/local/tomcat/conf

# cp web.xml web.xml.bak

# vim web.xml,在末尾</web-app>前新增如下代碼:

<security-constraint>

<web-resource-collection>

<web-resource-name>SSL</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

# catalina.sh stop  # catalina.sh configtest  # catalina.sh start  # ss -tunlp | grep -w :8080

(5)瀏覽器中訪問:

http://web.qiuyue.com:8080/myapp/

image.png

image.png

image.png

http://192.168.1.145:8080

image.png

此處不演示如何導入證書


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章