tomcat基础

tomcat简介

tomcat是apache软件基金会的Jalarta项目中的一个核心项目,由apache、sun(目前已被Oracle收购)和其他一些公司及个人共同开发而成。由于有了sun公司的参与和支持,最新版的servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且是开源免费的,因此许多Java开发者得到了部分软件开发商的许可,Tomcat也成为了目前较流行的web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,和apache等其他web服务器一样,Tomact同样支持HTML页面的处理,只不过能力稍比Apache差。

中间件

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于C/S的操作系统之上,管理计算机资源和网络通信,是连接两个独立应用程序或独立系统的软件。中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括 web 服务器、事务监控器和消息队列软件。

tomcat三种工作模式

bio(Blocking IO):tomcat7版本及之前,同步模型,bio是阻塞式io;对于每一个请求都要创建一个线程来进行处理,开销大,不适合高并发的场景。
nio(New IO):Tomcat8版本及以后的工作模式,异步非阻塞;nio1(缺省),nio2可以通过少量的线程处理大量的请求,有更高的并发运行性能。
apr(Apache Portable Runtime):从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,是运行高并发的首选模式。

安装tomcat

安装jdk
注意:安装之前先检查系统是否安装了openjdk,如果安装了请先卸载。

[root@localhost local]# tar xf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@localhost local]# vim /etc/profile.d/jdk8.sh
export JAVA_HOME=/usr/local/jdk1.8.0_221
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
[root@localhost local]# source /etc/profile

安装tomcat

[root@localhost apache-tomcat-8.5.54]# tar xf apache-tomcat-8.5.54.tar.gz -C /usr/local/

tomcat启动脚本

#!/bin/bash
JAVA_HOME=/usr/local/jdk1.8.0_191
export JAVA_HOME
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
case "$1" in
start)
			echo "Starting Tomcat..."
$CATALINA_HOME/bin/startup.sh
;;
stop)
			echo "Stopping Tomcat..."
$CATALINA_HOME/bin/shutdown.sh
sleep 2
echo
echo "Starting TOmcat..."
$CATALINA_HOME/bin/startup.sh
;;
*)
echo "Usage: "$prog {start|stop|restart"
;;
exit 0

如果需要安装多实例只需准备多个路径和多个端口即可:

sed -i.bak 's#8080#8081#g' /app/tomcat81/conf/server.xml
sed -i.bak 's#8005#8006#g' /app/tomcat81/conf/server.xml
sed -i.bak 's#8009#8010#g' /app/tomcat81/conf/server.xml

sed -i.bak 's#8081#8082#g' /app/tomcat82/conf/server.xml
sed -i.bak 's#8006#8007#g' /app/tomcat82/conf/server.xml
sed -i.bak 's#8010#8011#g' /app/tomcat82/conf/server.xml

在这里插入图片描述
在这里插入图片描述tomcat启动后会有8005这个端口,这个端口是tomcat的shutdown端口,当连接至该端口输入暗号则会关闭tomcat服务,所以在生产中建议修改该端口号。

tomct的目录结构

bin:存放tomcat启动和关闭的脚本
conf:存放tomcat不同的配置文件(server.xml、web.xml)
lib:包含tomcat使用的jar文件
logs:存放tomcat执行时的日志文件
logs/catalina.out:tomcat的日志文件
webapps:网页发布目录
webapps/ROOT/:tomcat家目录
work:存放jsp编译后产生的class文件或servlet文件
temp:存放tomcat运行时产生的临时文件

配置一个虚拟主机

vim /app/tomcat/conf/server.xml

<Host name="www.tomcatweb.com"  appBase="/var/www/html"> 
<Context path="" docBase="/var/www/html/web1" /> 
</Host> 

效果:
在这里插入图片描述
appBase表示指定网站的基本目录
path="“为虚拟目录,如果为空则直接表示IP:8080。
docBase=”"为实际目录,如果是相对路径则基于appBase。

设置tomcat的工作模式为apr

tomcat可以使用apr来提供更好的伸缩性和性能。tomcat native在具体的运行平台上提供了一种优化技术,它本身是基于apr技术来实现的。
在bin目录下有个 tomcat-native.tar.gz文件我们安装一下它,先下载依赖关系

yum -y install apr-devel gcc gcc-c++ make openssl-devel openssl
tar xf tomcat-native.tar.gz -C /usr/local/
cd /usr/local/tomcat-native-1.2.18-src/native/
./configure --with-apr=/usr/ --with-java-home=/usr/local/jdk1.8.0_191 --with-ssl
[root@localhost native]# make && make install
[root@localhost native]# echo"/usr/local/apr/lib">/etc/ld.so.conf
[root@localhost native]# ldconfig
[root@localhost native]# vim /etc/profile.d/jdk8.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
[root@localhost native]# source /etc/profile.d/jdk8.sh

然后

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

在这里插入图片描述
引用 apr
[root@localhost native]# vim /usr/local/tomcat/bin/catalina.sh
253 行下面添加:

JAVA_OPTS="$JAVA_OPTS-Djava.library.path=/usr/local/apr/lib"

效果:
在这里插入图片描述
重启服务生效
看日志看是否支持 native

cat /usr/local/tomcat/logs/catalina.out | grep Native

配置tomcat管理端

[root@localhost ~]# vim /app/tomcat/conf/tomcat-users.xml

加入以下代码

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

效果:
在这里插入图片描述
在这里插入图片描述
管理端默认只允许本地127.0.0.1才能访问,想要接触该限制只需要配置:

[root@localhost tomcat]# sed -i.bak 's#127#\\d+#g' ./webapps/manager/META-INF/context.xml
[root@localhost tomcat]# sed -i.bak 's#127#\\d+#g' ./webapps/host-manager/META-INF/context.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值