1、Tomcat简介
官网:http://tomcat.apache.org/
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0.27。
Tomcat
服务器是一个免费的开源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下使用,是开发和调试JSP
程序的首选。Tomcat
和Nginx
、Apache
等Web
服务器一样,具有处理HTML
页面的功能,另外它还是一个Servlet
和JSP
容器,独立的Servlet
容器是Tomcat
的默认模式。不过,Tomcat
处理静态HTML
的能力不如Nginx/Apache
服务器。一般情况下多用Nginx+Tomcat
,Nginx
处理静态,Tomcat
处理动态程序。
2、部署Java环境
## 解压软件包
[root@ansible ~]# tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/
## 创建一个软链接
[root@ansible ~]# ln -s /usr/local/jdk1.8.0_91/ /usr/local/java
## 添加环境变量
[root@ansible ~]# sed -i.ori '$a export JAVA_HOME=/usr/local/java \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@ansible ~]# source /etc/profile
[root@ansible ~]# env |grep JAVA
JAVA_HOME=/usr/local/java
## 查看是否安装成功
[root@ansible ~]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-BitServer VM (build 25.91-b14, mixed mode)
3、部署Tomcat
## 解压软件包
[root@ansible ~]# tar xf apache-tomcat-9.0.21.tar -C /usr/local/
## 创建一个软链接
[root@ansible ~]# ln -s /usr/local/apache-tomcat-9.0.21/ /usr/local/tomcat
## 定义tomcat所需的环境变量
[root@ansible ~]# echo "export TOMCAT_HOME=/usr/local/tomcat" >> /etc/profile
## 重新加载环境变量
[root@ansible ~]# source /etc/profile
4、Tomcat目录结构
[root@ansible tomcat]# cd /usr/local/tomcat/
[root@ansible tomcat]# tree -L 1
.
├── bin ##存放启动、关闭tomcat或者其它功能的脚本(.bat文件和.sh文件)
├── BUILDING.txt
├── conf ##存放tomcat配置相关的文件
├── CONTRIBUTING.md
├── lib ##存放Web应用能访问的JAR包
├── LICENSE
├── logs ##存放tomcat日志文件
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp ##临时文件
├── webapps ##Web应用程序的跟目录
└── work ##用以产生有JSP编译出的Servlet的.java和.class文件
7directories, 7files
1.tomcat
配置文件存放在安装目录conf
[root@ansible webapps]# cd /usr/local/tomcat/conf/
[root@ansible conf]# ll
总用量 228
-rw-------. 1root root 128736月 504:23 catalina.policy
-rw-------. 1root root 72436月 504:23 catalina.properties
-rw-------. 1root root 14006月 504:23 context.xml
-rw-------. 1root root 11496月 504:23 jaspic-providers.xml
-rw-------. 1root root 23136月 504:23 jaspic-providers.xsd
-rw-------. 1root root 41446月 504:23 logging.properties
-rw-------. 1root root 75116月 504:23 server.xml ##主配置文件
-rw-------. 1root root 21646月 504:23 tomcat-users.xml ##Tomcat管理用户配置文件
-rw-------. 1root root 26336月 504:23 tomcat-users.xsd
-rw-------. 1root root 1719626月 504:23 web.xml
2.webapps
目录说明:这里几个目录对应着主界面的上面的按钮,可以直接在主界面查看帮助文档,及web
界面直接管理
[root@ansible tomcat]# cd webapps/
[root@ansible webapps]# ll
总用量 4
drwxr-x---. 14root root 409611月 1611:09 docs ##tomcat帮助文档
drwxr-x---. 6root root 8311月 1611:09 examples ##web应用实例
drwxr-x---. 5root root 8711月 1611:09 host-manager ##主机管理
drwxr-x---. 5root root 10311月 1611:09 manager ##管理
drwxr-x---. 3root root 28311月 1611:09 ROOT ##默认网站根目录
3.tomcat
日志文件
[root@ansible logs]# ll
总用量 100
-rw-r-----. 1root root 4757111月 1611:37 catalina.2019-11-16.log
-rw-r-----. 1root root 4757111月 1611:37 catalina.out ##实时日志
-rw-r-----. 1root root 011月 1611:27 host-manager.2019-11-16.log
-rw-r-----. 1root root 130911月 1611:29 localhost.2019-11-16.log ##访问日志
-rw-r-----. 1root root 011月 1611:27 localhost_access_log.2019-11-16.txt
-rw-r-----. 1root root 011月 1611:27 manager.2019-11-16.log ##管理日志
5、Tomcat启动
1默认的启动方式
[root@ansible logs]# /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/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@ansible logs]# /usr/local/tomcat/bin/shutdown.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/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
2.加入/etc/init.d/
的service
[root@ansible logs]# vim /etc/init.d/tomcat
#!/bin/bash
# Init file for Tomcat server daemon
#
# chkconfig: 2345 96 14
# description: Tomcat server daemon
JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/local/jdk1.8.0_91 #指定jdk安装路径
CATALINA_HOME=/usr/local/tomcat #指定tomcat安装路径
exportJAVA_OPTS JAVA_HOME CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh $*
[root@ansible logs]# chmod +x /etc/init.d/tomcat
[root@ansible logs]# service tomcat start
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_91
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@ansible logs]# service tomcat stop
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_91
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
测试访问tomcat:
6、配置Tomcat管理界面
配置tomcat
的web
界面管理功能,可以进行配置文件的管理,及部署在tomcat
上的应用进行管理,默认情况是处于禁用状态。如果要开启这个功能,需要配置管理用户,即配置tomcat-users.xml
文件。并且还需要修改manager项目下的content.xml
文件,让其所有地址可访问。
[root@ansible ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
44<role rolename="manager-gui"/>
45<role rolename="admin-gui"/>
46<user username="tomcat"password="tomcat"roles="manager-gui,admin-gui"/>
[root@ansible ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
改为:
20 allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
[root@ansible ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
改为:
20 allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
7、访问测试
状态页面:
Manager页面:
Host Manager页面:
8、总结
在Tomcat 中 config目录下有一个 web.xml 配置文件,在项目开发中也会出现 web.xml 配置文件,对二者相比较,Tomcat 中 config目录下的 web.xml 作为所有项目通用配置文件,而项目目录下的 web.xml 为局部作用域,只对本项目有效,二者同时出现时。项目下的 web.xml 中的配置优先权更高。
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。
扫描二维码
获取更多精彩
运维猫公众号
有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:
扫描二维码
添加私人微信
运维猫博主
扫码加微信
最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。
点击阅读原文 查看更多精彩内容!!!