tomcat理论

一、 Tomcat软件目录结构及功能

  • bin:服务相关脚本,例如:启动、关闭等。。
  • conf:存放不同的配置文件,例如:server.xml、 web.xml
  • lib:Tomcat运行需要的库文件
  • logs:运行的日志文件
  • webapps:web应用的根目录
  • work:存放jsp编译后的class文件

二、 Tomcat架构

  1.  server 提供一个接口让其他程序能够访问到server集合、同时要维护它所包含的所有server的生命周期,包含如何初始化、如何结束服务、如何找到别人要访问的Service
  2.  service service是server下一个集合。service包含多个接收请求的connector并有一个处理所有连接的容器container
  3.  connector connectot作用是监听客户端请求,并将请求封装提交container处理,然后将处理结果返回客户端。 Tomcat有两个典型的connector一个用来监听浏览器的http请求,另一个用来监听来自其他服务器的请求。 Coyote Http/1.3 Connerctor 在端口8080处侦听来自客户浏览器的http请求 Coyote AJP/1.3 Connector 在端口8009处侦听来自其他webserver(APache)的servletde/jsp代理请求
  4.  container 4.1 Engine engine下科普日制作多个虚拟主机Virtual Host,每个虚拟主机都有一个域名,当engine获得一个请求时,它把请求匹配到某个Host上,然后把该请求交给该Host来处理 Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理localhost 4.2  Host 代表一个virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domian Name相匹配 每个虚拟主机下都可以部署(deploy)一个或者多个web app,每个web App对应一个context,有一个Context path 当Host获得一个请求时,把该请求匹配到每个context上,然后把该请求交给该context来处理 所有无法和其他context的路径匹配的请求都将最终和该默认context匹配

角色管理

  • manager-gui 允许访问html接口  /manager/html
  • manager-script 允许访问纯文本接口 /manager/text
  • manager-jmxremote 允许访问jmx接口  /manager/jmxramote
  • manager status 允许访问服务器状态页面

简单说明:前三种角色均具备访状态页面的权限
状态页面: firefox http://本机ip:8080/manager/status

tomcat优化

  1. 端口防护(修改端口号)
  2. 禁用目录浏览(默认禁用)
  3. 脚本权限收回 ```bash chmod -R 744 /usr/local/tomcat ```
  4. 隐藏服务器信息 ```bash [root@localhost tomcat]# vim /usr/local/tomcat/conf/web.xml # 添加以下代码 404 /notfound.jsp ```
  5. 禁用后台管理(app manager 和 host manager) ```bash [root@localhost tomcat]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT 删除host-manager文件夹即可 ```
  6. tomcat参数优化 - BIO blocking IO # 阻塞IO - NIO nonblocking IO # 非阻塞IO - APR Apache protable runtime # 系统的解决解决阻塞,拥有更高的并发量 ```bash [root@localhost tomcat]# vim /usr/local/tomcat/conf/server.xml ```

tomcat的安装与配置

 安装JAVA环境

  1. 首先需要下载JDK安装包,并解压到/usr/local目录下
[root@localhost ~]# tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/
  1. 设置环境变量
[root@localhost ~]# vim /etc/profile

在末尾添加

export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

使环境变量生效

[root@localhost ~]# source /etc/profile

添加软连接

[root@localhost ~]# ln -s /usr/local/jdk1.8.0_171/bin/java /usr/bin/java

检测java版本

[root@localhost ~]# java -version

安装tomcat

首先还是先下载Tomcat安装包,并解压到/usr/local目录下

[root@localhost ~]# tar -zxf apache-tomcat-8.5.35.tar.gz -C /usr/local/

启动Tomcat

[root@localhost ~]# cd /usr/local/
[root@localhost local]# cp -r apache-tomcat-8.5.35/ ./tomcat
[root@localhost local]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_201/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# firefox 192.168.1.11:8080


修改配置文件

[root@localhost local]# vim /usr/local/tomcat/conf/server.xml

应用管理

修改访问权限

[root@localhost tomcat]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

修改tomcat-users.xml配置文件

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="managergui" password="1234.com" roles="manager-gui"/>
<user username="managerscript" password="1234.com" roles="manager-script"/>

测试访问

[root@localhost tomcat]# firefox http://192.168.1.11:8080/manager/html

主机管理

修改访问权限

[root@localhost tomcat]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml

修改tomcat-users.xml配置文件

[root@localhost tomcat]# vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admingui" password="123456" roles="admin-gui"/>
<user username="adminscript" password="123456" roles="admin-gui"/>

测试访问

[root@localhost tomcat]# firefox http://192.168.1.11:8080/host-manager/html

Last modification:July 23rd, 2020 at 11:08 pm
如果觉得我的文章对你有用,请随意赞赏