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

[经验分享] Tomcat基础详解

[复制链接]

尚未签到

发表于 2018-12-1 08:35:24 | 显示全部楼层 |阅读模式
Tomcat基础详解
组件原理图如下:

任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现
而引擎才是真正意义上执行jsp代码的容器,都是tomcat用类来描述这些组件的
同时,为了接受用户的请求,需要基于connector组件,所谓监听的套接字的程序,能够接手用户的请求,被称为连接器
一个server内部可以完全运行N个引擎,无非就是运行多个虚拟机而已

war包的概念
    放在网页目录可以直接访问,而部署的时候可以自动将其展开装载,而这是部署本身所完成的工作
在实现web站点的时候,在出程序之下有目录比如/web/htdoc,而在其目录下有一子目录/web/htdoc/bbs 而在其下有个论坛程序
这个目录程序跟其他程序可能不在同一组,而新加的子目录则需要重新部署,因为其属于独立的应用程序,因为每个独立程序都需要独立部署
对于tomcat来讲每一个host内部还有一子组件,叫做conntest,其作用是为了实现程序的独立部署

对于tomcat来讲要想记录日志的话,因此这些都需要使用特殊接口来实现,所以,任何一个需要操作硬件资源的进程,资源都有一个类在实现我们的需求,tomcat也一样。

常见组件
1.服务器(server)
    实例,通常一个jvm只能包含一个实例,一般情况下,一个物理服务器可以启动多个jvm,从而启动多个实例,但一般不这么做
2.服务(service)
    一个服务组件通常包含一个引擎和此引擎相关联的一个或多个链接服务器
3.连接器(connectors)
    一个引擎能配置多个连接器 但是每个连接器的端口不能冲突
    同时,tomcat也支持AJP JSERV和JK2连接器,实现让apache反向代理到后端服务器的非常高效的传输协议
容器类组件
4.引擎
    可以自己接收用户的http请求,并构建响应报文,而且可以在内部处理java程序的整个套间
5.主机
6.上下文

被嵌套类组件
7.阀门
    能够过滤也可以做访问控制
8.日志记录器
9.领域(Realm)
    用来实现用户的认证和授权

对tomcat来讲,每种模型上的实现必须开发一种程序,才能完成相应组件的功能,而java中任何程序都是一个类


Tomcat安装
查看文件:
# cat /usr/local/tomcat/conf/server.xml
Listener 为侦听器,通常实现tomcat内部进行通信的,可在各组件之间完成通信


  
  
  
  
  

全局命名资源,方便全局引用,所以为其起完名称后可以随便调用的

  
                #其调用tomcat-user.xml配置文件进行用户认证
  

服务类组件配置信息,将连接器关联至引擎上
  

                               #必要的时候可以做重定向,定义在8443
                         #不验证客户端 ssl协议用的是tls
      
                          #引擎,名为catalina
            
            
                         #如果是war文件格式,是否解压,是否自动部署
         #定义阀门,java中类的记录方式,当前所处域名反过来写的记录方式        
                 #访问日志的格式      
               
         
   


  Connector组件:
  进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:
  Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IIS, Nginx等;
  Tomcat作为独立服务器:请求来自于web浏览器;
  Tomcat应该考虑工作情形并为相应情形下的请求分别定义好需要的连接器才能正确接收来自于客户端的请求。一个引擎可以有一个或多个连接器,以适应多种请求方式。
  连接器类型:
  定义连接器可以使用多种属性,有些属性也只适用于某特定的连接器类型。一般说来,常见于server.xml中的连接器类型通常有4种:
  1) HTTP连接器
  2) SSL连接器
  3) AJP 1.3连接器
  4) proxy连接器
  

  HTTP连接器:
  如上面示例server.xml中定义的HTTP连接器:
      AJP连接器:  
  定义连接器时可以配置的属性非常多,但通常定义HTTP连接器时必须定义的属性只有“port”,定义AJP连接器时必须定义的属性只有"protocol",因为默认的协议为HTTP。以下为常用属性的说明:
  1) address:指定连接器监听的地址,默认为所有地址,即0.0.0.0;
  2) maxThreads:支持的最大并发连接数,默认为200;
  3) port:监听的端口,默认为0;
  4) protocol:连接器使用的协议,默认为HTTP/1.1,定义AJP协议时通常为AJP/1.3;
  5) redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口;
  6) connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒,默认为60000,即1分钟;
  7) enableLookups:是否通过request.getRemoteHost()进行DNS查询以获取客户端的主机名;默认为true;
  8) acceptCount:设置等待队列的最大长度;通常在tomcat所有处理线程均处于繁忙状态时,新发来的请求将被放置于等待队列中;
  

  HTTPS连接器:
  下面是一个定义了多个属性的SSL连接器:
      启用manager功能:
  编辑tomcat-user.xml,添加如下行:



  
  启用host-manager和server status功能:

  而后重启tomcat。

  Manager的四个管理角色:
  manager-gui - allows access to the HTML GUI and the status pages
  manager-script - allows access to the text interface and the status pages
  manager-jmx - allows access to the JMX proxy and the status pages
  manager-status - allows access to the status pages only




运维网声明 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-641783-1-1.html 上篇帖子: Tomcat配置单机多实例 下篇帖子: 解决tomcat访问速度慢的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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