tomcat

准备工作

  1. java 环境变量(tomcat8.5 需要jdk1.5)
  2. 下载tomcat并上传到服务器(https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz)

安装

  1. 解压tomcat
tar zxvf apache-tomcat-8.5.41.tar.gz
  1. 启动tomcat
    解压后tomcat文件在apache-tomcat-8.5.41目录下。tomcat目录结构如下:

├─ bin                  // 命令:sh,exe,bat等
│  ├─startup.sh            // 启动命令
│  ├─shutdown.sh           //管理命令
├─ config               //配置文件
│  ├─context.xml           //权限和许可证限制
│  ├─server.xml            //如何启动Tomcat 
│  ├─web.xml               //web容器配置
├─ lib                  //tomcat 依赖jar
├─ logs                 //日志文件
├─ temp                 //
├─ webapps              //存放web应用
│  ├─docs                  //tomcat文档项目
│  ├─example               //示例项目
│  ├─host-manager          //
│  ├─manager               // 管理项目
├─ work
....

将war导入到webapps目录下,执行命令:
1. cd bin  //进入bin目录
2. sh startup.sh    //执行启动命令

项目将webapps的war和已经存在项目(docs,example)等一起启动;在无其他配置的情况下,根据ip+项目名访问项目。如:

  1. docs 访问路径 http://localhost:8080/docs/index.html
  2. manager 访问路径 http://localhost:8080/manager/html
  3. test.war 访问路径 http://localhost:8080/test/…

http://localhost:8080 默认跳转到manager项目

配置

server.xml
 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
 
 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
 
 protocol : 
    HTTP/1.1协议负责建立HTTP连接
    AJP/1.3 协议负责和其他HTTP服务器建立连接,比如tomcat和apache集成时需要用到这个连接器(搭建集群等)。
协议有三种实现方式:
    bio:HTTP1.1  基于JAVA的HTTP/1.1连接器,效率最低
    nio:org.apache.coyote.http11.Http11NioProtocol, 非阻塞i/o操作。使用少了线程处理大量求情
    apr:Apache Portable Runtime/Apache可移植运行时
redirectPort:连接器不支持SSL请求,如收到SSL请求,Catalina容器将会自动重定向指定的端口号

 <Engine name="Catalina" defaultHost="localhost">
 请求入口,将请求交给匹配的Host主机匹配,默认为localhost
 
  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
     每个的元素定义了一个虚拟主机.它包含了一个或多个Web应用
     
 <Context path="imgs" docBase="../myapps/imgs" debug="0" reloadable="false"/> 
    对应于一个Web App

Tomcat Server处理一个http请求的过程

请求为:http://localhost:8080/wsota/wsota_index.jsp

  1. 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
  2. Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
  3. Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
  4. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
  5. localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
  6. Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
  7. path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
  8. 后续过程省略…
tomcat-user.xml

给tomcat角色设置账号和密码,示例如下:

<role rolename ="manager-gui"/>
<user username ="tomcat" password ="tomcat" roles ="manager-gui"/>
  1. manager-gui
    允许访问html接口(即URL路径为/manager/html/*)
  2. manager-script
    允许访问纯文本接口(即URL路径为/manager/text/*)
  3. manager-jmx
    允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
  4. manager-status
    允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
web.xml

配置servlet 规范

图片服务器配置

在webapps同级目录新建文件夹myapps,在myappss文件夹下新建imgs文件夹,host配置如下:

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log" suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />		
    <Context path="imgs" docBase="../myapps/imgs" debug="0" reloadable="false"/> 
</Host>

使用manager管理项目

默认情况下,如果想新增项目,需要将war导入到webapps目录下,然后关闭,启动tomcat。这样存在很多问题:

  1. tomcat需要重启
  2. tomcat下所有项目都需要重启,每次启动时会影响其他所有项目

为提高效率我们可以使用tomcat自带的manager对项目进行管理。

配置用户(tomcat-user.xml)

tomcat默认没有配置任何用户,在tomcat-user中添加以下代码:

<!--username password 自定义-->
<role rolename ="manager-gui"/>
<user username ="tomcat" password ="tomcat" roles ="manager-gui"/>
ip权限配置

tomcat manager默认只能在127下访问,这样有一定安全性,但也带来了不便,如果需要配置允许请求的ip,可以在context.xml中配置

系统默认配置

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

允许任意ip

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
		allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
管理项目

http://localhost:8080/manager/html
首次进行需要输入账号密码,验证成功后看到tomcat程序列表。

按钮说明:

  1. stop 停止项目和
  2. reload 重新启动项目
  3. undeploy 卸载项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值