JAVA企業級應用Tomcat實戰

1. Tomcat安裝

1.1 軟件準備

JDK下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat下載:http://tomcat.apache.org/

1.2 部署java環境

cd /usr/local/src 

tar zxf jdk-8u40-linux-x64.tar.gz 

mv jdk1.8.0_40 /usr/local/jdk 

chown -R root:root /usr/local/jdk

sed -i.ori '$a export JAVA_HOME=/usr/local/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

source /etc/profile

#→出現下面結果證明部署成功

[root@tomcat ~]# java -version

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)


1.3 安裝Tomcat


cd /usr/local/src

tar zxf apache-tomcat-8.0.41.tar.gz

mv apache-tomcat-8.0.41 /usr/local/tomcat

echo 'export TOMCAT_HOME=/usr/local/tomcat'>>/etc/profile

source /etc/profile

chown -R root.root /usr/local/dk/ /usr/local/tomcat/

[root@linux-node1 ~]# tail -4 /etc/profile

    export JAVA_HOME=/usr/local/jdk

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

    export TOMCAT_HOME=/usr/local/tomcat

1.4 Tomcat目錄介紹

[root@linux-node1 ~]# cd /usr/local/tomcat/

[root@linux-node1 tomcat]# tree -L 1

.├── bin         #→用以啓動、關閉Tomcat或者其它功能的腳本(.bat文件和.sh文件)

 ├── conf        #→用以配置Tomcat的XML及DTD文件

 ├── lib         #→存放web應用能訪問的JAR包

 ├── LICENSE

 ├── logs        #→Catalina和其它Web應用程序的日誌文件

 ├── NOTICE

 ├── RELEASE-NOTES

 ├── RUNNING.txt

 ├── temp        #→臨時文件

 ├── webapps        #→Web應用程序根目錄

 └── work        #→用以產生有JSP編譯出的Servlet的.java和.class文件

 7 directories, 4 files

[root@linux-node1 tomcat]# cd webapps/

[root@linux-node1 webapps]# ll

總用量 20

drwxr-xr-x 14 root root 4096 Oct  5 12:09 docs     #→tomcat幫助文檔

drwxr-xr-x  6 root root 4096 Oct  5 12:09 examples #→web應用實例

drwxr-xr-x  5 root root 4096 Oct  5 12:09 host-manager #→管理

drwxr-xr-x  5 root root 4096 Oct  5 12:09 manager  #→管理

drwxr-xr-x  3 root root 4096 Oct  5 12:09 ROOT     #→默認網站根目錄 

1.5 啓動Tomcat

[root@linux-node1 ~]# /usr/local/tomcat/bin/startup.sh 

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[root@linux-node1 ~]# ps aux | grep java

root      33752 89.7 13.9 2273300 139996 pts/0  Sl   02:57   0:08 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.20.23.249 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

root      33772  0.0  0.0 103260   840 pts/0    S+   02:57   0:00 grep java

1.6 訪問網站

網址:http://10.20.23.250:8080/

wKioL1jccBWQlNJuAAIf_t4ea4c930.png-wh_50

1.7 Tomcat日誌

[root@linux-node2 tomcat]# cd logs/

[root@linux-node2 logs]# ll

總用量 24

-rw-r--r-- 1 root root 6292 3月  15 22:13 catalina.2017-03-15.log

-rw-r--r-- 1 root root 6292 3月  15 22:13 catalina.out

-rw-r--r-- 1 root root    0 3月  15 22:13 host-manager.2017-03-15.log

-rw-r--r-- 1 root root  284 3月  15 22:13 localhost.2017-03-15.log

-rw-r--r-- 1 root root  728 3月  15 22:13 localhost_access_log.2017-03-15.txt

-rw-r--r-- 1 root root    0 3月  15 22:13 manager.2017-03-15.log

[root@linux-node2 logs]# tailf catalina.out

15-Mar-2017 22:13:27.923 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/examples has finished in 548 ms

15-Mar-2017 22:13:27.923 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/host-manager

15-Mar-2017 22:13:27.972 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/host-manager has finished in 49 ms

15-Mar-2017 22:13:27.973 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/docs

15-Mar-2017 22:13:28.015 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/docs has finished in 41 ms

15-Mar-2017 22:13:28.015 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/ROOT

15-Mar-2017 22:13:28.050 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/ROOT has finished in 35 ms

15-Mar-2017 22:13:28.056 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]

15-Mar-2017 22:13:28.066 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]

15-Mar-2017 22:13:28.072 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1544 ms

^C

[root@linux-node2 logs]# ll

總用量 24

-rw-r--r-- 1 root root 6292 3月  15 22:13 catalina.2017-03-15.log

-rw-r--r-- 1 root root 6292 3月  15 22:13 catalina.out

-rw-r--r-- 1 root root    0 3月  15 22:13 host-manager.2017-03-15.log

-rw-r--r-- 1 root root  284 3月  15 22:13 localhost.2017-03-15.log

-rw-r--r-- 1 root root  728 3月  15 22:13 localhost_access_log.2017-03-15.txt

-rw-r--r-- 1 root root    0 3月  15 22:13 manager.2017-03-15.log

[root@linux-node2 logs]# cat localhost.2017-03-15.log 

15-Mar-2017 22:13:27.910 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()

15-Mar-2017 22:13:27.910 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()

[root@linux-node2 logs]# cat localhost_access_log.2017-03-15.txt 

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET / HTTP/1.1" 200 11250

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /tomcat.css HTTP/1.1" 200 5581

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /tomcat.png HTTP/1.1" 200 5103

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /bg-upper.png HTTP/1.1" 200 3103

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /bg-middle.png HTTP/1.1" 200 1918

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /bg-button.png HTTP/1.1" 200 713

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /asf-logo-wide.svg HTTP/1.1" 200 26447

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /bg-nav.png HTTP/1.1" 200 1401

10.20.23.1 - - [15/Mar/2017:22:13:55 +0800] "GET /favicon.ico HTTP/1.1" 200 21630


2. Tomcat配置文件

2.1 Tomcat配置文件

[root@linux-node2 conf]# pwd

/usr/local/tomcat/conf

[root@linux-node2 conf]# ll

總用量 220

drwxr-xr-x 3 root root   4096 3月  15 22:13 Catalina

-rw------- 1 root root  12767 1月  19 06:25 catalina.p olicy

-rw------- 1 root root   7125 1月  19 06:25 catalina.properties

-rw------- 1 root root   1577 1月  19 06:25 context.xml

-rw------- 1 root root   3387 1月  19 06:25 logging.properties

-rw------- 1 root root   6458 1月  19 06:25 server.xml   #主配置文件

-rw------- 1 root root   2164 1月  19 06:25 tomcat-users.xml  ##tomcat管理用戶配置文件

-rw------- 1 root root   2634 1月  19 06:25 tomcat-users.xsd

-rw------- 1 root root 168378 1月  19 06:25 web.xml

2.2 Tomcat管理

測試功能,生產環境不要用。

Tomcat管理功能用於對Tomcat自身以及部署在Tomcat上的應用進行管理的web應用。在默認情況下是處於禁用狀態的。如果需要開啓這個功能,就需要配置管理用戶,即配置前面說過的tomcat-users.xml。


[root@linux-node2 conf]# vim /usr/local/tomcat/conf/tomcat-users.xml

 .........

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

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

</tomcat-users>  #→在此行前加入上面三行


[root@linux-node2 conf]# /usr/local/tomcat/bin/shutdown.sh 

[root@linux-node2 conf]# /usr/local/tomcat/bin/startup.sh  

2.3 Tomcat主配置文件Server.xml詳解

2.3.1 server.xml組件類別

  • 頂級組件:位於整個配置的頂層,如server。

  • 容器類組件:可以包含其它組件的組件,如service、engine、host、context。

  • 連接器組件:連接用戶請求至tomcat,如connector。

  • 被嵌套類組件:位於一個容器當中,不能包含其他組件,如Valve、logger。


2.3.2 組件詳解

  • engine:核心容器組件,catalina引擎,負責通過connector接收用戶請求,並處理請求,將請求轉至對應的虛擬主機host。

  • host:類似於httpd中的虛擬主機,一般而言支持基於FQDN的虛擬主機。

  • context:定義一個應用程序,是一個最內層的容器類組件(不能再嵌套)。配置context的主要目的指定對應對的webapp的根目錄,類似於httpd的alias,其還能爲webapp指定額外的屬性,如部署方式等。

  • connector:接收用戶請求,類似於httpd的listen配置監聽端口的。

  • service(服務):將connector關聯至engine,因此一個service內部可以有多個connector,但只能有一個引擎engine。service內部有兩個connector,一個engine。因此,一般情況下一個server內部只有一個service,一個service內部只有一個engine,但一個service內部可以有多個connector。

  • server:表示一個運行於JVM中的tomcat實例。

  • Valve:閥門,攔截請求並在將其轉至對應的webapp前進行某種處理操作,可以用於任何容器中,比如記錄日誌(access log valve)、基於IP做訪問控制(remote address filter valve)。

  • logger:日誌記錄器,用於記錄組件內部的狀態信息,可以用於除context外的任何容器中。

  • realm:可以用於任意容器類的組件中,關聯一個用戶認證庫,實現認證和授權。可以關聯的認證庫有兩種:UserDatabaseRealm、MemoryRealm和JDBCRealm。

  • UserDatabaseRealm:使用JNDI自定義的用戶認證庫。

  • MemoryRealm:認證信息定義在tomcat-users.xml中。

  • JDBCRealm:認證信息定義在數據庫中,並通過JDBC連接至數據庫中查找認證用戶。



3. Tomcat安全優化和性能優化

3.1 安全優化

  • 降權啓動

  • telnet管理端口保護

  • ajp連接端口保護

  • 禁用管理端

類別配置內容及說明標準配置備註
telnet管理端口保護

1、修改默認的8005管理端口爲不易猜測的端口(大於1024);

2、修改Shutdown指令爲其他字符串

<server port="8527" shutdown="dangerous">
1、以上配置項的配置內容只是建議配置,可以按照服務實際情況進行合理配置,但要求端口配置在8000-8999之間;

Ajp連接端口保護

1、修改默認的ajp 8009端口爲不易衝突的大於1024的端口;

2、通過iptables規則限制ajp端口訪問的權限僅爲線上機器;

<Connector port="8528" protocol="AJP/1.3"/>
以上配置項的配置內容僅爲建議配置,請按照訪問實際情況進行合理配置,但要求端口配置在8000-8999之間;保護此端口的目的在於防止線下的測試流量被mod_jk轉發至線上tomcat服務器;
禁用管理端

1、刪除默認的{Tomcat 安裝目錄}/conf/tomcat-users.xml文件後將會自動生成新的文件;

2、刪除{tomcat安裝目錄}/webapps下默認的所有目錄和文件;

3、將tomcat應用根目錄配置爲tomcat安裝目錄以外的目錄;

<Context path="" docBase="/home/work/local/tomcat_webapps" debug="0" reloadable="false" crossContext="true"/>

對於前端web模塊,tomcat管理端屬於tomcat的高危安全隱患,一旦被攻破,***通過上傳web shell的方式將會直接服務器的控制權,後果極其嚴重;
降權啓動

1、tomcat啓動用戶權限必須爲非root權限,儘量降低tomcat啓動用戶的目錄訪問權限;

2、如需直接對外使用80端口,可通過普通賬號啓動後,配置iptables規則進行轉發;

-避免一旦tomcat訪問被***,***直接獲取高級用戶權限危害整個server的安全;
文件列表訪問控制
1、conf/web.xml文件中default部分listings的配置必須爲false;


<init-param> <param-name>listings</param-name> <param-value>false</init-param>



false爲不列出目錄文件,ture爲允許列出,默認爲false;
版本信息隱藏

1、修改conf/web.xml,重定向403、404以及500等錯誤到指定的錯誤頁面;

2、也可以通過修改應用程序目錄下的WEB-INF/web.xml下的配置進行錯誤頁面的重定向;


<error-page> <error-code>403</error-code> <location>/forbidden.jsp</location> </error-page>

<error-page> <error-code>404</error-code> <location>/notfound.jsp</location> </error-page>

<error-page> <error-code>500</error-code> <location>/systembusy.jsp</location> </error-page>



在配置中對一些常見錯誤進行重定向,避免當出現錯誤時tomcat默認顯示的錯誤頁面暴露服務器和版本信息;

必須確保程序根目錄下的錯誤頁面已經存在;

Server header 重寫在HTTP Connector配置中加入server的配置; server="webserver"

當tomcat HTTP端口直接提供web服務時此配置生效,加入此配置,將會替換http響應server header部分的默認配置,默認是Apache-Coyote/1.1

訪問限制通過配置,限定訪問的ip來源

<Context path="" docBase="/home/work/tomcat" debug="0" reloadable="false" crossContext="true">

<Valve className="org.apache.cataline.valves.RemoteAddrValve" allow="61.148.18.138,61.135.*" deny="*.*.*.*"/>

</Context>

通過配置信任ip的白名單,拒絕非白名單ip的訪問,此配置主要是針對高保密級別的系統,一般產品級不需要;
啓停腳本權限回收去除其他用戶對Tomcat的bin目錄下shutdown.sh、startup.sh、catalina.sh的可執行權限;chmod -R 744 tomcat/bin/*防止其他用戶有起停線上tomcat的權限;
訪問日誌格式規範開啓Tomcat默認訪問日誌中的Referer和User-Agent記錄

<Valve className="org.apache.cataline.valves.RemoteAddrValve"  directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %D" resolveHosts="false"/>


開啓Referer和User-Agent是爲了一旦出現安全問題能夠更好的根據日誌進行問題排查;


4. WEB站點部署

上線的代碼有兩種方式,第一種方式是直接將程序目錄放在webapps目錄下面,這種方式大家已經明白了,就不多說了。第二種方式是使用開發工具將程序打包成war包,然後上傳到webapps目錄下面。下面讓我們見識一下這種方式。

4.1 使用war包部署web站點

[root@linux-node1 webapps]# pwd

/application/tomcat/webapps

[root@linux-node1 webapps]# rz  

#→上傳memtest.war

[root@linux-node1 webapps]# ls

docs  examples  host-manager  manager  memtest  memtest.war  ROOT

瀏覽器訪問:http://10.20.23.249:8080/memtest/meminfo.jsp

4.2 自定義默認網站目錄

上面訪問的網址爲http://10.20.23.249:8080/memtest/meminfo.jsp  
現在我想訪問格式爲http://10.20.23.249:8080/meminfo.jsp  
怎麼破?

方法一

將meminfo.jsp或其他程序放在tomcat/webapps/ROOT目錄下即可。因爲默認網站根目錄爲tomcat/webapps/ROOT

方法二

[root@linux-node1 ~]# vim /application/tomcat/conf/server.xml

      <Host name="localhost"  appBase="webapps" 

           unpackWARs="true" autoDeploy="true">

        <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

[root@linux-node1 ~]# /application/tomcat/bin/shutdown.sh

[root@linux-node1 ~]# /application/tomcat/bin/startup.sh


5. Tomcat監控

首先學習下jvm的幾個比較有用的命令:

5.1.1 jsp

作用:快速獲取java進程的PID

[root@linux-node1 ~]# jps      ##只顯示java進程

13937 Bootstrap

24004 Jps

[root@linux-node1 ~]# jps -lvm

13937 org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp

24027 sun.tools.jps.Jps -lvm -Denv.class.path=.:/usr/local/jdk/lib/:/usr/local/jdk/jre/lib:/usr/local/jdk/lib/tools.jar -Dapplication.home=/usr/local/jdk -Xms8m


5.1.2jstack

作用:打印所有的java進程的運行狀態信息

[root@linux-node1 ~]# jstack 13937 > 13937.txt

[root@linux-node1 ~]# ll

總用量 92

-rw-r--r--  1 root root 49464 1月  18 15:54 13937.txt

-rw-------. 1 root root  1098 1月   3 16:58 anaconda-ks.cfg

-rw-r--r--. 1 root root 23040 1月   3 16:58 install.log

-rw-r--r--. 1 root root  6240 1月   3 16:57 install.log.syslog

[root@linux-node1 ~]# ll -lh 13937.txt

-rw-r--r-- 1 root root 49K 1月  18 15:54 13937.txt

[root@linux-node1 ~]# top -H -p 13937

top - 15:56:02 up 1 day, 28 min,  2 users,  load average: 0.02, 0.02, 0.00

Tasks:  65 total,   0 running,  65 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1004412k total,   923476k used,    80936k free,    42528k buffers

Swap:  1023992k total,    23424k used,  1000568k free,   156160k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

13937 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.01 java

13938 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.82 java

13939 root      20   0 2401m 429m  18m S  0.0 43.8   0:06.48 java

13940 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.07 java

13941 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.03 java

13942 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.06 java

13943 root      20   0 2401m 429m  18m S  0.0 43.8   0:32.91 java

13944 root      20   0 2401m 429m  18m S  0.0 43.8   0:08.24 java

13945 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.00 java

13946 root      20   0 2401m 429m  18m S  0.0 43.8   0:35.81 java

13947 root      20   0 2401m 429m  18m S  0.0 43.8   0:02.27 java

13948 root      20   0 2401m 429m  18m S  0.0 43.8   0:00.00 java

[root@linux-node1 ~]# echo "obase=16; 13945" | bc

3679

[root@linux-node1 ~]# ll

總用量 92

-rw-r--r--  1 root root 49464 1月  18 15:54 13937.txt

-rw-------. 1 root root  1098 1月   3 16:58 anaconda-ks.cfg

-rw-r--r--. 1 root root 23040 1月   3 16:58 install.log

-rw-r--r--. 1 root root  6240 1月   3 16:57 install.log.syslog

[root@linux-node1 ~]# less 13937.txt

...skipping...

"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007fd5f80b5000 nid=0x3679 runnable [0x0000000000000000]

java.lang.Thread.State: RUNNABLE


5.1.3 jmap

打印出整個java堆內存的所有東西


5.2 監控

5.2.1 修改配置文件

[root@linux-node1 ~]# vim /usr/local/tomcat/bin/catalina.sh     ##加入以下內容


CATALINA_OPTS="$CATALINA_OPTS

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=12345

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

-Djava.rmi.server.hostname=10.20.23.249"

5.2.2 重啓tomcat

[root@linux-node1 ~]# /usr/local/tomcat/bin/shutdown.sh 

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

[root@linux-node1 ~]# /usr/local/tomcat/bin/startup.sh 

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

5.2.3 監控

在win7上安裝jdk,打開jdk的安裝目錄(D:\Program Files\Java\jdk1.8.0_121\bin)

雙擊打開jconsole和jvisualvm兩個監控插件:

wKioL1jceKCR5jHCAAFs4JSP9E0161.png-wh_50


wKiom1jceH7CVDl8AAGXyEzgojY967.png-wh_50


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