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

[经验分享] tomcat配置与应用(1)

[复制链接]

尚未签到

发表于 2018-11-30 09:57:34 | 显示全部楼层 |阅读模式
回顾: java, tomcat

  

java:

servlet: java 2 ee的一个特殊类;

jsp: java 2 ee的一个特殊类;

java 2 ee: java 2 se, servlet, jsp, jmx, javamail, ...

jsp --> jasper --> servlet --> complie --> bytecodes --> jvm

tomcat: JWS(Sun) + Jserv(ASF)

tomcat: jdk + tomcat

tomcat:server.xml

server, service, connector, engine, host, context

部署:

jvm:

运行时区域:

堆:对象;


Tomcat(2)

  
tomcat:

CentOS 6:

Oracle JDK, Tomcat

yum repo:

jdk

tomcat6

tomcat

CentOS 7:

OpenJDK 7

Tomcat 7

JDK:

1.6,1.7,1.8  注:1.6为采用的最经典的版本,不同的应用程序对jdk的版本要求是不一样的,要注意

注:很多应用程序在运行时都会去寻找一个JAVA_HOME的环境变量,以确定jdk所在的路径

java程序如果监听在一个小于1023的端口上,才需要root用户去启用它,否则我们完全可以使用普通用户运行该程序。

engine早期的代码叫catalina,所以在java内部把engine叫做catalina

Java WebAPP 组织结构:

有特定的组织形式、层次型的目录结构;主要包含了servlet代码文件、JSP页面文件、类文件、部署描述符文件等;

/usr/local/tomcat/webapps/app1/

/: webapp的根目录;

WEB-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的web.xml;

META-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的context.xml;

classes/: 此webapp的私有类;

lib/: 此webapp的私有类,被打包为jar格式类;

index.jsp:webapp的主页

webapp归档格式:

.war:webapp;

.jar:EJB的类;

.rar:资源适配器;

.ear:企业级应用程序;

手动添加一个测试应用程序:

1、创建webapp特有的目录结构;

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

2、提供webapp各文件;

#vim myapp/index.jsp





JSP Test Page






部署(deployment)webapp相关的操作

deploy:部署,将webapp的源文件放置于目标目录、配置tomcat服务器能够基于context.xml文件中定义的路径来访问                         此webapp; 将其特有类通过class loader装载至tomcat;

有两种方式:

自动部署:auto deploy

手动部署:

1、冷部署:把webapp复制到指定位置,而后才启动tomcat;

2、热部署:在不停止tomcat的前提下进行的部分:

部署工具:manager、ant脚本、tcd(tomcat client deployer)等;

undeploy:反部署,停止webapp,并从tomcat实例拆除其部分文件和部署名;

stop:停止,不再向用户提供服务;

start:启动处于“停止”状态的webapp;

redeploy:重新部署;

tomcat自带的应用程序:

manager app: webapp管理工具

host manager:Virtual Hosts管理工具

配置manager app管理工具的用户名和密码


  #/usr/local/tomcat/conf/tomcat-users.xml

  配置完执行:
  # catalina.sh stop
  # catalina.sh start
  再次访问172.16.0.131:8080/manger/html
  http://s1.运维网.com/images/20180113/1515817298343889.png

  配置host manager的账号密码

  #/usr/local/tomcat/conf/tomcat-users.xml

  配置完执行:
  # catalina.sh stop
  # catalina.sh start


  tomcat的主配置文件结构:

  Tomcat的架构:
  Tomcat 6支持Servlet 2.5和JSP 2.1的规范,它由一组嵌套的层次和组件组成,一般可分为以下四类:
  顶级组件:位于配置层次的顶级,并且彼此间有着严格的对应关系;
  连接器:连接客户端(可以是浏览器或Web服务器)请求至Servlet容器,
  容器:包含一组其它组件;
  被嵌套的组件:位于一个容器当中,但不能包含其它组件;
  各常见组件:
  1、服务器(server):Tomcat的一个实例,通常一个JVM只能包含一个Tomcat实例;因此,一台物理服务器上可以在启动多个JVM的情况下在每一个JVM中启动一个Tomcat实例,每个实例分属于一个独立的管理端口。这是一个顶级组件。
  2、服务(service):一个服务组件通常包含一个引擎和与此引擎相关联的一个或多个连接器。给服务命名可以方便管理员在日志文件中识别不同服务产生的日志。一个server可以包含多个service组件,但通常情下只为一个service指派一个server。
  连接器类组件:
  3、连接器(connectors):负责连接客户端(可以是浏览器或Web服务器)请求至Servlet容器内的Web应用程序,通常指的是接收客户发来请求的位置及服务器端分配的端口。默认端口通常是HTTP协议的8080,管理员也可以根据自己的需要改变此端口。一个引擎可以配置多个连接器,但这些连接器必须使用不同的端口。默认的连接器是基于HTTP/1.1的Coyote。同时,Tomcat也支持AJP、JServ和JK2连接器。
  容器类组件:
  4、引擎(Engine):引擎通是指处理请求的Servlet引擎组件,即Catalina Servlet引擎,它检查每一个请求的HTTP首部信息以辨别此请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端。严格意义上来说,容器不必非得通过引擎来实现,它也可以是只是一个容器。如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。一个引擎可以包含多个host组件。
  5、主机(Host):主机组件类似于Apache中的虚拟主机,但在Tomcat中只支持基于FQDN的“虚拟主机”。一个引擎至少要包含一个主机组件。
  6、上下文(Context):Context组件是最内层次的组件,它表示Web应用程序本身。配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器能够将用户请求发往正确的位置。Context组件也可包含自定义的错误页,以实现在用户访问发生错误时提供友好的提示信息。
  被嵌套类(nested)组件:
  这类组件通常包含于容器类组件中以提供具有管理功能的服务,它们不能包含其它组件,但有些却可以由不同层次的容器各自配置。
  7、阀门(Valve):用来拦截请求并在将其转至目标之前进行某种处理操作,类似于Servlet规范中定义的过滤器。Valve可以定义在任何容器类的组件中。Valve常被用来记录客户端请求、客户端IP地址和服务器等信息,这种处理技术通常被称作请求转储(request dumping)。请求转储valve记录请求客户端请求数据包中的HTTP首部信息和cookie信息文件中,响应转储valve则记录响应数据包首部信息和cookie信息至文件中。
  8、日志记录器(Logger):用于记录组件内部的状态信息,可被用于除Context之外的任何容器中。日志记录的功能可被继承,因此,一个引擎级别的Logger将会记录引擎内部所有组件相关的信息,除非某内部组件定义了自己的Logger组件。
  9、领域(Realm):用于用户的认证和授权;在配置一个应用程序时,管理员可以为每个资源或资源组定义角色及权限,而这些访问控制功能的生效需要通过Realm来实现。Realm的认证可以基于文本文件、数据库表、LDAP服务等来实现。Realm的效用会遍及整个引擎或顶级容器,因此,一个容器内的所有应用程序将共享用户资源。同时,Realm可以被其所在组件的子组件继承,也可以被子组件中定义的Realm所覆盖。
  引擎(Engine):引擎是指处理请求的Servlet引擎组件,即Catalina Servlet引擎,它从HTTPconnector接收请求并响应请求。它检查每一个请求的HTTP首部信息以辨别此请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端。严格意义上来说,容器不必非得通过引擎来实现,它也可以是只是一个容器。如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。一个引擎可以包含多个host组件。
  【以上段的内容来自马哥教育】
  配置文件详解:

  1、server.xml
     注:可以通过telnet登录本机,执行shutdow关闭8005端口
     注:资源监控组件
  
  
  
  
  
  
  
    注:定义全局命名格式的
  
  
  
  
  
  
  
     只有apache的专用组件支持,AJP: apache jserv protocol, 二进制协议;
            默认虚拟主机为本地主机
  

  自定义Host及Context示例:
        
   注:appBase指的是主机的应用库 unpackWARs:能否自动展开WAR文件  autoDeploy:是否支持自动部署
  
    
          
  
            日志格式
        
   注意:path给定的路径不能以“/”结尾;

  





运维网声明 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-641458-1-1.html 上篇帖子: Tomcat(2)配置Tomcat的虚拟主机 、日志 下篇帖子: linux 下运行多个tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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