tomcat(1)- tomcat服务介绍与安装
1. Tomcat介绍
-
JVM简介
JAVA应用都是运行在java虚拟机上的,java虚拟机简称为JVM(iava Virtual Machine)。
所谓虚拟机是指:通过软件模拟具有完整硬件系统的功能运行在一个完全隔离环境中的计算机系统。
-
JVM虚拟机的作用
C语言不支持跨平台,因为C语言要想在windows、linux、Mac上运行,需要进行分别编译。那么在linux上有非常多的优秀软件如果需要在Windows上使用则需要重新进行编译。移植性很差。
而JAVA则不同,JAVA是可以跨平台的,只需要将源代码进行一次编译,能够在多处运行。
那JAVA是怎么做到?它只需要在Windows、Linux系统上运行一个jvm,这样我们能将java编译好的war包在Windows和Linux平台运行起来,无需我们重复编译。
-
JRE和JDK
jre是java的运行环境,会包含jvm。
jdk是java的开发环境,会包含java的运行环境jre。
单纯的运行java代码只需要jre足够,但如果需要提供开发环境以及运行环境则需要 jdk。
-
Tomcat介绍
Tomcat与nginx,apache类似,也是一个Web服务器软件。只不过Tomcat是基于JAVA开发的WEB服务,主要用于解析Java代码,类似于php-fpm用于解析php代码。
Nginx仅支持静态资源解析,而Tomcat支持解析java开发的web应用,还支持解析静态资源(效率不高)。
Nginx适合做前端负载均衡,而Tomcat适合做后端应用服务处理。
通常情况下,企业会使用Nginx+tomcat结合,由Nginx处理静态资源,Tomcat处理动态资源。
2. Tomcat安装
安装tomcat软件之前需要安装java环境JDK。
2.1 JDK安装
JDK安装有两种方式,yum安装和二进制安装。
-
yum安装方式:
#直接通过Centos的base源进行安装,默认安装的版本时1.8: [root@xuzhichao ~]# yum install java -y [root@xuzhichao ~]# rpm -q java-1.8.0-openjdk java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
-
二进制方式安装
JDK官方下载地址为https://www.oracle.com/java/technologies/javase-downloads.html
[root@es-node1 ~]# mkdir /soft/ [root@es-node1 ~]# tar xf jdk-8u60-linux-x64.tar.gz -C /app/ [root@es-node1 ~]# ln -s /soft/jdk1.8.0_60 /soft/jdk #设置环境变量 [root@es-node1 ~]# cat >> /etc/profile <<'EOF' export JAVA_HOME=/soft/jdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar EOF
2.2 Tomcat安装
tomcat也有两种安装方式,yum安装和二进制安装,一般使用二进制方式安装,因为二级制方式可以使用较新的tomcat版本,而且不需要进行编译,安装也较为简单。
-
tomcat的安装包下载:
-
解压并创建软连接:
[root@tomcat01 ~]# tar -xf apache-tomcat-10.0.7.tar.gz -C /apps/ [root@tomcat01 ~]# cd /apps/ [root@tomcat01 apps]# ln -sv apache-tomcat-10.0.7/ tomcat ‘tomcat’ -> ‘apache-tomcat-10.0.7/’ [root@tomcat01 apps]# ll total 0 drwxr-xr-x 9 root root 220 Jul 5 11:34 apache-tomcat-10.0.7 lrwxrwxrwx 1 root root 21 Jul 5 11:35 tomcat -> apache-tomcat-10.0.7/
-
启动和停止tomcat服务:
#启动tomcat服务: [root@tomcat01 apps]# /apps//tomcat/bin/startup.sh Using CATALINA_BASE: /apps/tomcat Using CATALINA_HOME: /apps/tomcat Using CATALINA_TMPDIR: /apps/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started. #查看tomcat监听端口。tomcat默认监听在TCP/8080端口: [root@tomcat01 apps]# ss -ntlp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=88545,fd=53)) LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=88545,fd=62)) #停止tomcat服务: [root@tomcat01 apps]# /apps/tomcat/bin/shutdown.sh Using CATALINA_BASE: /apps/tomcat Using CATALINA_HOME: /apps/tomcat Using CATALINA_TMPDIR: /apps/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS:
-
使用systemd控制tomcat服务
#添加tomcat的unit脚本 [root@tomcat01 apps]# cat /usr/lib/systemd/system/tomcat.service [Unit] Description=Apache Tomcat Web Application Container After=network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment=CATALINA_HOME=/apps/tomcat Environment=CATALINA_BASE=/apps/tomcat ExecStart=/apps/tomcat/bin/startup.sh ExecStop=/apps/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target #重载脚本: [root@tomcat01 apps]# systemctl daemon-reload #启动和停止tomcat服务: [root@tomcat01 apps]# systemctl start tomcat.service [root@tomcat01 apps]# systemctl stop tomcat.service
-
客户端访问tomcat的默认页面:
3. Tomcat打开默认的管理页面
当我们访问Tomcat的默认页面时,点击主页上的server status,manager app,host manager都会提示403错误,提示需要配置basic认证才能访问。
根据提示信息,解决方法如下:
-
配置conf/tomcat-users.xml文件
[root@tomcat01 ~]# vim /apps/tomcat/conf/tomcat-users.xml <tomcat-users> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="123456" roles="manager-gui,admin-gui"/> </tomcat-users>
-
tomcat默认只允许本地127.0.0.1进行basic认证,如果需要其他网段也能进行basic认证,需要配置允许的访问规则,配置文件为webapps/项目名称/META-INF/context.xml。
[root@tomcat01 ~]# vim /apps/tomcat/webapps/host-manager/META-INF/context.xml <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.20\.\d+" /> [root@tomcat01 ~]# vim /apps/tomcat/webapps/manager/META-INF/context.xml <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.20\.\d+" />
-
访问页面进行测试
点击页面时需要输入conf/tomcat-users.xml配置文件中定义的用户名密码认证。
server status页面用于监控tomcat的服务状态相关信息:
manager app用于管理tomcat的应用(停止和开启),以及发布应用。
host manager用于部署tomcat的虚拟主机: