|
目录
1. Tomcat简介... 2
2. Tomcat安装... 2
2.1 软件准备... 2
2.2 部署java环境... 3
2.3 安装Tomcat. 4
2.4 Tomcat目录介绍... 4
2.5 启动Tomcat. 5
2.6 访问网站... 6
2.7 Tomcat日志... 7
3. Tomcat配置文件... 8
3.1 Tomcat配置文件... 8
3.2 Tomcat管理... 9
3.3 Tomcat主配置文件Server.xml详解... 10
4. WEB站点部署... 14
4.1 使用war包部署web站点... 15
4.2 自定义默认网站目录... 15
5. Tomcat多实例及集群架构... 16
5.1 Tomcat多实例... 16
5.2 Tomcat集群... 18
6. Tomcat监控... 19
7. Tomcat安全优化和性能优化... 19
7.1 安全优化... 19
7.2 性能优化... 19
7.2.2 jvm调优... 20
1. Tomcat简介
Tomcat是Apache软件基金会(Apache SoftwareFoundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。
对比php软件,区别?
目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。
2. Tomcat安装
2.1 软件准备
JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat下载:http://tomcat.apache.org/
因为jdk和Tomcat的版本对运维来说没什么区别,提供本文使用的软件下载地址:http://pan.baidu.com/s/1IpioA
2.2 部署java环境
1. [root@tomcat ~]# cd /application/tools/
2.
3. [root@tomcat tools]# rz
4. rz waiting to receive.
5. Starting zmodem transfer. Press Ctrl+C to cancel.
6. Transferringapache-tomcat-8.0.27.tar.gz...
7. 100% 8914 KB 8914 KB/sec 00:00:01 0 Errors
8. Transferringjdk-8u60-linux-x64.tar.gz...
9. 100% 176990 KB 14749 KB/sec 00:00:12 0 Errors
10.
11.tar xf jdk-8u60-linux-x64.tar.gz -C/application/
12.
13.ln -s /application/jdk1.8.0_60/application/jdk
14.
15.sed -i.ori '$a exportJAVA_HOME=/application/jdk\nexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexportCLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar'/etc/profile
16.
17.source /etc/profile
18.
19.#→出现下面结果证明部署成功
20.[root@tomcat ~]# java -version
21.java version "1.8.0_60"
22.Java(TM) SE Runtime Environment (build1.8.0_60-b27)
23.Java HotSpot(TM) 64-Bit Server VM (build25.60-b23, mixed mode)
上面有一个sed命令的特殊用法,欲知详情→http://edu.运维网.com/course/course_id-5266.html
2.3 安装Tomcat
1. tar xf apache-tomcat-8.0.27.tar.gz -C/application/
2.
3. ln -s /application/apache-tomcat-8.0.27/application/tomcat
4.
5. echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
6.
7. source /etc/profile
8.
9. chown -R root.root /application/jdk//application/tomcat/
10.
11.[root@tomcat ~]# tail -4 /etc/profile
12.export JAVA_HOME=/application/jdk
13.exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
14.exportCLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
15.export TOMCAT_HOME=/application/tomcat
2.4 Tomcat目录介绍
1. [root@tomcat ~]# cd /application/tomcat/
2. [root@tomcat tomcat]# tree -L 1
3. .
4. ├── bin #→用以启动、关闭Tomcat或者其它功能的脚本(.bat文件和.sh文件)
5. ├── conf #→用以配置Tomcat的XML及DTD文件
6. ├── lib #→存放web应用能访问的JAR包
7. ├── LICENSE
8. ├── logs #→Catalina和其它Web应用程序的日志文件
9. ├── NOTICE
10.├──> 11.├── RUNNING.txt
12.├── temp #→临时文件
13.├── webapps #→Web应用程序根目录
14.└── work #→用以产生有JSP编译出的Servlet的.java和.class文件
15.7 directories, 4 files
16.
17.[root@tomcat tomcat]# cd webapps/
18.[root@tomcat webapps]# ll
19.total 20
20.drwxr-xr-x 14 root root 4096 Oct 5 12:09 docs #→tomcat帮助文档
21.drwxr-xr-x 6 root root 4096 Oct 5 12:09 examples #→web应用实例
22.drwxr-xr-x 5 root root 4096 Oct 5 12:09 host-manager #→管理
23.drwxr-xr-x 5 root root 4096 Oct 5 12:09 manager #→管理
24.drwxr-xr-x 3 root root 4096 Oct 5 12:09 ROOT #→默认网站根目录
2.5 启动Tomcat
1. #→启动程序/application/tomcat/bin/startup.sh
2. #→关闭程序/application/tomcat/bin/shutdown.sh
3.
4. [root@tomcat ~]#/application/tomcat/bin/startup.sh
5. Using CATALINA_BASE: /application/tomcat
6. Using CATALINA_HOME: /application/tomcat
7. Using CATALINA_TMPDIR:/application/tomcat/temp
8. Using JRE_HOME: /application/jdk
9. Using> 10.Tomcat started.
11.
12.[root@tomcat ~]# netstat -tunlp|grepjava
13.tcp 0 0 :::8009 :::* LISTEN 4743/java
14.tcp 0 0 :::8080 :::* LISTEN 4743/java
15.
16.[root@tomcat ~]# ps -ef|grep [j]ava
17.root 4743 1 17 06:10 pts/0 00:00:03/application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/application/tomcat/endorsed -classpath/application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat-Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrapstart
2.6 访问网站
网址:http://10.0.0.3:8080/
2.7 Tomcat日志
1. [root@tomcat ~]# cd/application/tomcat/logs/
2. [root@tomcat logs]# ls
3. catalina.2016-01-26.log localhost.2016-01-26.log
4. catalina.out localhost_access_log.2016-01-26.txt
5. host-manager.2016-01-26.log manager.2016-01-26.log
6.
7. #→tomcat实时日志
8. [root@tomcat logs]# tailf catalina.out
9. 26-Jan-2016 06:10:24.006 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web application directory/application/apache-tomcat-8.0.27/webapps/examples has finished in 666 ms
10.26-Jan-2016 06:10:24.007 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeploying web application directory/application/apache-tomcat-8.0.27/webapps/docs
11.26-Jan-2016 06:10:24.054 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web application directory/application/apache-tomcat-8.0.27/webapps/docs has finished in 47 ms
12.26-Jan-2016 06:10:24.055 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeploying web application directory/application/apache-tomcat-8.0.27/webapps/manager
13.26-Jan-2016 06:10:24.134 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web application directory /application/apache-tomcat-8.0.27/webapps/managerhas finished in 80 ms
14.26-Jan-2016 06:10:24.139 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeploying web application directory /application/apache-tomcat-8.0.27/webapps/host-manager
15.26-Jan-2016 06:10:24.188 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web application directory/application/apache-tomcat-8.0.27/webapps/host-manager has finished in 50 ms
16.26-Jan-2016 06:10:24.195 INFO [main]org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler["http-nio-8080"]
17.26-Jan-2016 06:10:24.206 INFO [main]org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler["ajp-nio-8009"]
18.26-Jan-2016 06:10:24.211 INFO [main]org.apache.catalina.startup.Catalina.start Server startup in 1560 ms
3. Tomcat配置文件
3.1 Tomcat配置文件
1. [root@tomcat conf]# pwd
2. /application/tomcat/conf
3. [root@tomcat conf]# ll -h
4. total 216K
5. drwxr-xr-x 3 root root 4.0K Jan 26 06:10Catalina
6. -rw------- 1 root root 13K Sep 28 16:19 catalina.policy
7. -rw------- 1 root root 7.0K Sep 28 16:19catalina.properties
8. -rw------- 1 root root 1.6K Sep 28 16:19context.xml
9. -rw------- 1 root root 3.4K Sep 28 16:19logging.properties
10.-rw------- 1 root root 6.4K Sep 28 16:19server.xml #→主配置文件
11.-rw------- 1 root root 1.8K Sep 28 16:19tomcat-users.xml #→Tomcat管理用户配置文件
12.-rw------- 1 root root 1.9K Sep 28 16:19tomcat-users.xsd
13.-rw------- 1 root root 164K Sep 28 16:19web.xml
3.2 Tomcat管理
测试功能,生产环境不要用。
Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下是处于禁用状态的。如果需要开启这个功能,就需要配置管理用户,即配置前面说过的tomcat-users.xml。
1. [root@tomcat ~]# vim/application/tomcat/conf/tomcat-users.xml
2. …………
3.
4.
5.
6. #→在此行前加入上面三行
7. [root@tomcat ~]#/application/tomcat/bin/shutdown.sh
8. [root@tomcat ~]#/application/tomcat/bin/startup.sh
3.3 Tomcat主配置文件Server.xml详解
3.3.1 server.xml组件类别
· 顶级组件:位于整个配置的顶层,如server。
· 容器类组件:可以包含其它组件的组件,如service、engine、host、context。
· 连接器组件:连接用户请求至tomcat,如connector。
· 被嵌套类组件:位于一个容器当中,不能包含其他组件,如Valve、logger。
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
3.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 logvalve)、基于IP做访问控制(remote address filter valve)。
· logger:日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中。
· realm:可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权。可以关联的认证库有两种:UserDatabaseRealm、MemoryRealm和JDBCRealm。
· UserDatabaseRealm:使用JNDI自定义的用户认证库。
· MemoryRealm:认证信息定义在tomcat-users.xml中。
· JDBCRealm:认证信息定义在数据库中,并通过JDBC连接至数据库中查找认证用户。
3.3.3 配置文件注释
1.
2.
7.
8.
9.
10.
11.
12.
13.
14.
19.
20.
21.
22.
34.
37.
38.
39.
42.
43.
44.
45.
47.
48.
57.
59.
65.
66.
67.
70.
71.
72.
73.
4. WEB站点部署
上线的代码有两种方式,第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。下面让我们见识一下这种方式。
4.1 使用war包部署web站点
1. [root@tomcat webapps]# pwd
2. /application/tomcat/webapps
3. [root@tomcat webapps]# rz #→上传memtest.war,此文件也在上面的百度网盘里
4. [root@tomcat webapps]# ls
5. docs examples host-manager manager memtest memtest.war ROOT
浏览器访问:http://10.0.0.3:8080/memtest/meminfo.jsp
4.2 自定义默认网站目录
上面访问的网址为http://10.0.0.3:8080/memtest/meminfo.jsp
现在我想访问格式为http://10.0.0.3:8080/meminfo.jsp
怎么破?
方法一
将meminfo.jsp或其他程序放在tomcat/webapps/ROOT目录下即可。因为默认网站根目录为tomcat/webapps/ROOT
方法二
1. [root@tomcat ~]# vim/application/tomcat/conf/server.xml
2.
4.
5. [root@tomcat ~]#/application/tomcat/bin/shutdown.sh
6. [root@tomcat ~]# /application/tomcat/bin/startup.sh
5. Tomcat多实例及集群架构
5.1 Tomcat多实例
5.1.1 复制Tomcat目录
1. [root@tomcat ~]# cd /application/
2. [root@tomcat application]# cp -aapache-tomcat-8.0.27 tomcat8_1
3. [root@tomcat application]# cp -aapache-tomcat-8.0.27 tomcat8_2
5.1.2 修改配置文件
1. [root@tomcat application]# mkdir -p/data/www/www/ROOT
2. [root@tomcat application]# cp/application/tomcat/webapps/memtest/meminfo.jsp /data/www/www/ROOT/
3. [root@tomcat ~]# sed -i'22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"#appBase="/data/www/www"#' /application/tomcat8_1/conf/server.xml
4. [root@tomcat ~]# sed -i'22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"#appBase="/data/www/www"#' /application/tomcat8_2/conf/server.xml
5. [root@tomcat ~]# diff/application/tomcat/conf/server.xml /application/tomcat8_1/conf/server.xml
6. 22c22
7. <
8. ---
9. >
10.69c69
11.< |
|
|
|
|
|
|