【运维知识进阶篇】Tomcat快速入门(Java环境介绍+Tomcat快速安装+Tomcat配置文件+Tomcat配置虚拟主机+Tomcat管理界面+Tomcat部署zrlog博客项目)(上)

简介: 【运维知识进阶篇】Tomcat快速入门(Java环境介绍+Tomcat快速安装+Tomcat配置文件+Tomcat配置虚拟主机+Tomcat管理界面+Tomcat部署zrlog博客项目)

这篇文章给大家讲解Tomcat快速入门,Tomcat和Nginx类似,都是WEB服务器软件,只不过Tomcat是基于JAVA开发的WEB服务,主要解析JAVA代码。


Nginx仅支持静态资源解析,而Tomcat支持Java开发的web应用,还支持解析静态资源(效率不高)Nginx适合做前端负载均衡,而Tomcat适合做后端应用服务处理。通常清空下企业种会使用Nginx+Tomcat结合,Nginx处理静态资源,Tomcat处理动态资源。


Java环境简单介绍

JVM介绍:Java业务都是运行在Java虚拟机上,Java虚拟机简称为JVM,虚拟机是通过软件模拟出具有完整硬件系统的功能

为什么Java需要JVM虚拟机?

早期C语言,不支持跨平台,如果C语言想要在Windows Linux Mac上运行,需要进行分别编译,那么在Linux上有很多优秀的软件,如果需要在Windows上使用需要重新编译,移植性差。

而Java则不同,Java是可以跨平台,只需要将源码进行一次编译,能够在不同的操作系统运行。

Java是如何做到的?

它只需要在Windows Linux系统上运行一个JVM,这样我们就能将Java编译好的war包在Windows和Linux平台运行起来,无需我们重复编译,而JVM是由JRE提供的

Java环境种JRE和JDK的区别?

JRE是Java的运行环境,包含JVM

JDK是Java的开发环境,包含Java的运行环境JRE

如果说单纯的运行环境Java代码,只需要JRE足够,但是如果需要提供开发环境以及运行环境则需要JDK

Tomcat快速安装

一、安装jdk

1. yum -y install java
2. 或者上传rpm包
3. rpm -ivh jdk-8u181-linux-x64.rpm

二、安装Tomcat(下载、解压、启动)

Tomcat官网:Apache Tomcat® - Welcome!

1. #可以在官网直接下载也可以在windows下载后导入
2. [root@Web01 ~]# rz -E
3. rz waiting to receive.
4. [root@Web01 ~]# mkdir /soft
5. [root@Web01 ~]# tar xf apache-tomcat-9.0.73.tar.gz -C /soft/
6. #做软连接一方面是方便调用,一方面是如果升级,直接重新挂下软连接即可
7. [root@Web01 ~]# ln -s /soft/apache-tomcat-9.0.73/ /soft/tomcat   
8. [root@Web01 ~]# /soft/tomcat/bin/startup.sh     #启动
9. #8080对外提供服务的端口,8005关闭Tomcat端口
10. [root@Web01 ~]# netstat -tnulp|grep java
11. tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      36724/java          
12. tcp6       0      0 :::8080                 :::*                    LISTEN      36724/java  
13. [root@Web01 ~]# /soft/tomcat/bin/shutdown.sh    #停止

三、配置systemctl方式启动

1. [root@Web01 ~]# systemctl cat nginx            #模仿着写
2. # /usr/lib/systemd/system/nginx.service
3. [Unit]
4. Description=nginx - high performance web server
5. Documentation=http://nginx.org/en/docs/
6. After=network-online.target remote-fs.target nss-lookup.target
7. Wants=network-online.target
8. 
9. [Service]
10. Type=forking
11. PIDFile=/var/run/nginx.pid
12. ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
13. ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
14. ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"
15. 
16. [Install]
17. WantedBy=multi-user.target
18. 
19. 
20. cat >/usr/lib/systemd/system/tomcat.service<<'EOF'
21. [Unit]
22. Description=Apache Tomcat Server
23. After=network.target remote-fs.target nss-lookup.target
24. 
25. [Service]
26. Type=forking
27. ExecStart=/soft/tomcat/bin/startup.sh
28. ExecStop=/soft/tomcat/bin/shutdown.sh
29. ExecRetart=/soft/tomcat/bin/shutdown.sh  && sleep2  && /soft/tomcat/bin/startup.sh
30. 
31. [Install]
32. WantedBy=multi-user.target
33. EOF
34. 
35. [root@Web01 ~]# systemctl daemon-reload    #加进配置文件后重载
36. [root@Web01 ~]# systemctl start tomcat
37. [root@Web01 ~]# netstat -tnulp|grep java
38. tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      38210/java          
39. tcp6       0      0 :::8080                 :::*                    LISTEN      38210/java          
40. [root@Web01 ~]# systemctl enable tomcat
41. Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.

Tomcat配置文件

1. tomcat软件目录结构
2. bin            ---主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
3. conf       ---tomcat配置文件的目录(站点配置:server.xml)
4. lib            ---tomcat运行时需要加载的jar包
5. logs       ---tomcat日志存放位置
6. temp       ---tomcat临时存放文件路径
7. webapps        ---tomcat默认站点目录
8. work       ---tomcat运行时产生的缓存文件
9. [root@Web01 ~]# vim /soft/tomcat/conf/server.xml    #配置文件
10. [root@Web01 ~]# sed -i '/<!--/,/-->/d' /soft/tomcat/conf/server.xml     #删除注释行

Tomcat配置虚拟主机(与Nginx同理)

1. [root@Web01 ~]# cat /soft/tomcat/conf/server.xml
2. ......    #添加下面内容到默认host下面
3. <Host name="test.koten.org"  appBase="/code/tomcat/test"
4.             unpackWARs="true" autoDeploy="true">
5. 
6. 
7. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
8.                prefix="test" suffix=".txt"
9.                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
10. 
11. </Host>
12. ......
13. [root@Web01 ~]# systemctl restart tomcat
14. [root@Web01 ~]# mkdir -p /code/tomcat/test/ROOT
15. [root@Web01 ~]# echo 'test:koten' > /code/tomcat/test/ROOT/index.html

本地解析hosts,浏览器访问:test.koten.org:8080

Tomcat HTTP请求过程

用户发出一个请求,如http://test.koten.org:8080/index.jsp

Connector发现是http/1.1协议,而且还是8080端口,于是就把请求接收后交给符合条件的Engine

Engine通过请求中的主机名test.koten.org查找满足条件的虚拟主机(Host)

找到后就去此虚拟主机指定的appBase(代码存放的目录)最后将解析产生的结果返回给用户。

Tomcat中的Context与Nginx中的location定义的路径效果类似,也与alias类似

1. location /files/ {
2.     alias /var/www/myfiles/;
3. }
1. [root@Web01 ~]# cat /soft/tomcat/conf/server.xml
2. ......
3.       </Host>
4.       <Host name="test.koten.org"  appBase="/code/tomcat/test" #appBase与docBase前面部分需要保持一致
5.             unpackWARs="true" autoDeploy="true">
6. <!--访问test.koten.org:8080/tt这个url,会获取/code/tomcat/test/tt中页面的资源-->
7.  <Context docBase="/code/tomcat/test/tt" path="/tt" reloadable="true" />
8. 
9.         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
10.                prefix="test" suffix=".txt"
11.                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
12. 
13.       </Host>
14. ......
15. [root@Web01 ~]# systemctl restart tomcat
16. [root@Web01 ~]# mkdir /code/tomcat/test/tt
17. [root@Web01 ~]# echo 'test:tt' > /code/tomcat/test/tt/index.html    #注意这里不需要ROOT目录
18. 
19. #经测试,先创建tt目录重启后会显示8005端口,不先创建tt目录,虽然也可以看,但是不显示8005端口,不知道这两者是否有关联

目录
相关文章
|
13小时前
|
XML 监控 Dubbo
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
|
14小时前
|
移动开发 监控 供应链
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
一开始接触MES系统,很多人会和博主一样,对MES细节的应用不了解,这样很正常,因为MES系统相对于其他系统来讲应用比较多!
13 1
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
|
2天前
|
Java 关系型数据库 MySQL
java+B/S架构医院绩效考核管理系统源码 医院绩效管理系统4大特点
医院绩效考核管理系统,采用多维度综合绩效考核的形式,针对院内实际情况分别对工作量、KPI指标、科研、教学、管理等进行全面考核。医院可结合实际需求,对考核方案中各维度进行灵活配置,对各维度的权重、衡量标准、数据统计方式进行自定义维护。
10 0
|
2天前
|
Java 数据挖掘 BI
Java医院绩效考核系统源码B/S+avue+MySQL助力医院实现精细化管理
医院绩效考核系统目标是实现对科室、病区财务指标、客户指标、流程指标、成长指标的全面考核、分析,并与奖金分配、学科建设水平评价挂钩。
30 0
|
2天前
|
监控 前端开发 Java
Java基于B/S医院绩效考核管理平台系统源码 医院智慧绩效管理系统源码
医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服务质量,增强患者满意度,并促进员工的专业成长
19 0
|
2天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
18 1
|
2天前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程
|
2天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
|
2天前
|
运维 网络协议 Linux
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
|
2天前
|
SQL Java
20:基于EL与JSTL的产品管理页-Java Web
20:基于EL与JSTL的产品管理页-Java Web
23 5