1)Tomcat简介
-
Tomcat是Apache软件基金会(Apache Software Foundation )的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
-
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
-
Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。
2)tomcat安装
2.1)安装jdk
`上传镜像`
[root@master-a src]# ll
-rw-r--r-- 1 root root 195094741 Oct 21 20:54 jdk-8u221-linux-x64.tar.gz
[root@master-a src]# mkdir /apps
[root@master-a src]# tar xf jdk-8u221-linux-x64.tar.gz -C /apps/
[root@master-a src]# chown -R root:root /apps/jdk1.8.0_221/
[root@master-a src]# ln -sv /apps/jdk1.8.0_221 /apps/jdk
`配置环境变量`
[root@master-a src]# sed -i.bak '$a export JAVA_HOME=/apps/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
[root@master-a src]# source /etc/profile
`验证服务`
[root@master-a src]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
2.2)安装tomcat
`上传镜像`
[root@master-a src]# ll
total 200804
-rw-r--r-- 1 root root 10523269 Oct 21 20:54 apache-tomcat-8.5.65.tar.gz
-rw-r--r-- 1 root root 195094741 Oct 21 20:54 jdk-8u221-linux-x64.tar.gz
[root@master-a src]# tar xf apache-tomcat-8.5.65.tar.gz -C /apps/
[root@master-a src]# chown -R root:root /apps/apache-tomcat-8.5.65/
[root@master-a src]# ln -sv /apps/apache-tomcat-8.5.65/ /apps/tomcat
`配置环境变量`
[root@master-a src]# sed -i.bak '$a export TOMCAT_HOME=/apps/tomcat\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH' /etc/profile
`验证服务`
[root@master-a src]# source /etc/profile
2.3)Tomcat目录介绍
[root@master-a tomcat]# tree -L 1
.
├── bin #用以启动、关闭Tomcat或者其它功能的脚本(.bat文件和. sh文件)
├── BUILDING.txt
├── conf #用于配置Tomcat的XML及DTD文件
├── CONTRIBUTING.md
├── lib #存放web应用能访问的JAR包
├── LICENSE
├── logs #Catalina和其它web应用程序的日志文件
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp #临时文件
├── webapps #web应用程序根目录
└── work #用认产生有JsP编译出的servlet的.java和.class文件
[root@master-a webapps]# ll
total 4
drwxr-x--- 15 root root 4096 Oct 21 21:11 docs #tomcat帮助文档
drwxr-x--- 7 root root 99 Oct 21 21:11 examples #web应用实例
drwxr-x--- 6 root root 79 Oct 21 21:11 host-manager #管理
drwxr-x--- 6 root root 114 Oct 21 21:11 manager #管理
drwxr-x--- 3 root root 223 Oct 21 21:11 ROOT #默认网站根目录
2.4)启动Tomcat
#启动程序 /apps/tomcat/bin/startup.sh
#关闭程序 /apps/tomcat/bin/shutdown.sh
[root@master-a ~]# /apps/tomcat/bin/startup.sh
Using CATALINA_BASE: /apps/tomcat
Using CATALINA_HOME: /apps/tomcat
Using CATALINA_TMPDIR: /apps/tomcat/temp
Using JRE_HOME: /apps/jdk
Using CLASSPATH: /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@master-a ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
Z
2.5)Tomcat日志
[root@master-a ~]# cd /apps/tomcat/logs/
[root@master-a logs]# tail -f catalina.out
22-Oct-2023 18:54:09.451 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/apps/apache-tomcat-8.5.65/webapps/docs]
22-Oct-2023 18:54:09.459 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/apps/apache-tomcat-8.5.65/webapps/docs] has finished in [8] ms
22-Oct-2023 18:54:09.459 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/apps/apache-tomcat-8.5.65/webapps/examples]
22-Oct-2023 18:54:09.622 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/apps/apache-tomcat-8.5.65/webapps/examples] has finished in [163] ms
22-Oct-2023 18:54:09.622 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/apps/apache-tomcat-8.5.65/webapps/host-manager]
22-Oct-2023 18:54:09.636 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/apps/apache-tomcat-8.5.65/webapps/host-manager] has finished in [14] ms
22-Oct-2023 18:54:09.636 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/apps/apache-tomcat-8.5.65/webapps/manager]
22-Oct-2023 18:54:09.647 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/apps/apache-tomcat-8.5.65/webapps/manager] has finished in [11] ms
22-Oct-2023 18:54:09.651 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Oct-2023 18:54:09.658 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 395 ms
3)Tomcat配置文件
3.1)Tomcat配置文件
[root@master-a conf]# pwd
/apps/tomcat/conf
[root@master-a conf]# ll
total 224
drwxr-x--- 3 root root 23 Oct 22 18:52 Catalina
-rw------- 1 root root 12874 Mar 30 2021 catalina.policy
-rw------- 1 root root 7661 Mar 30 2021 catalina.properties
-rw------- 1 root root 1338 Mar 30 2021 context.xml
-rw------- 1 root root 1149 Mar 30 2021 jaspic-providers.xml
-rw------- 1 root root 2313 Mar 30 2021 jaspic-providers.xsd
-rw------- 1 root root 3916 Mar 30 2021 logging.properties
-rw------- 1 root root 7588 Mar 30 2021 server.xml #主配置文件
-rw------- 1 root root 2164 Mar 30 2021 tomcat-users.xml #Tomcat管理用户配置文件
-rw------- 1 root root 2558 Mar 30 2021 tomcat-users.xsd
-rw------- 1 root root 171879 Mar 30 2021 web.xml
3.2)Tomcat管理
测试功能,生产环境不要用。
-
Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下是处于禁用状态的。如果需要开启这个功能,就需要配置管理用户,即配置前面说过的tomcat-users.xml。
[root@master-a conf]# vim tomcat-users.xml
.....
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>
</tomcat-users>#在这行前面加入上面三行
`重启服务`
[root@master-a conf]# /apps/tomcat/bin/shutdown.sh
[root@master-a conf]# /apps/tomcat/bin/startup.sh
3.3)Tomcat主配置文件Server.xml详解
server:
1、port 指定一个端口,这个端口负责监听关闭tomcat的请求
2、shutdown 指定向端口发送的命令字符串
service:
1、name 指定service的名字
Connector (表示客户端和service之间的连接):
1、port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
2、minProcessors 服务器启动时创建的处理请求的线程数
3、maxProcessors 最大可以创建的处理请求的线程数
4、enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
5、redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
6、acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
7、connectionTimeout 指定超时的时间数(以毫秒为单位)
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):
1、defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
Context (表示一个web应用程序):
1、docBase 应用程序的路径或者是WAR文件存放的路径
2、path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
3、reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
host (表示一个虚拟主机):
1、name 指定主机名
2、appBase 应用程序基本目录,即存放应用程序的目录
3、unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
Logger (表示日志,调试和错误信息):
1、className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
2、prefix 指定log文件的前缀
3、suffix 指定log文件的后缀
4、timestamp 如果为true,则log文件名中要加入时间,如下
例:localhost_log.2001-10-04.txt
Realm (表示存放用户名,密码及role的数据库):
1、className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):
1、className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory(指定log文件存放的位置):
1、pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行
4)WEB站点部署
4.1)使用war包部署web站点
"出于安全考虑我们要将webapp的一些目录移走"
[root@master-a webapps]# mv docs examples host-manager manager ROOT/* /tmp/
[root@master-a webapps]# ll
total 0
drwxr-x--- 2 root root 6 Oct 22 19:45 ROOT
`上传war包`
[root@master-a webapps]# ll
total 67640
drwxr-x--- 6 root root 86 Oct 22 19:52 jpress
-rw-r--r-- 1 root root 69261961 Oct 22 19:52 jpress.war
drwxr-x--- 2 root root 6 Oct 22 19:45 ROOT
4.2)自定义默认网站目录
[root@master-a webapps]# vim /apps/tomcat/conf/server.xml
.........
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">#在这行下面加入下面配置
<Context path="" docBase="/apps/tomcat/webapps/jpress" debug="0" reloadable="false" corssContext="true"/>
#及默认站点就变为了/apps/tomcat/webapps/jpress
...........


文章评论