设为首页 收藏本站
查看: 522|回复: 0

[经验分享] tomcat 实战

[复制链接]

尚未签到

发表于 2018-11-30 09:30:46 | 显示全部楼层 |阅读模式
  目录
  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.<

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641430-1-1.html 上篇帖子: Centos6.5系统搭建tomcat7.0.57通过msm实现session共享 下篇帖子: tomcat 异常信息处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表