【运维知识进阶篇】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端口,不知道这两者是否有关联

目录
相关文章
|
2月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
213 0
|
5月前
|
Java 应用服务中间件
多项目分接口:在同一Tomcat下使用不同的端口号访问不同的项目。
总而言之,要在同一Tomcat服务器下使用不同端口访问不同项目,关键是通过对server.xml文件的配置创建多个 `<Service>`实例和相应的虚拟主机。这种方法既实现了项目隔离,也有助于优化资源利用率。通过遵循本文的详细说明,很容易地就能满足需求实现多项目分接口。
168 38
|
5月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
376 11
|
5月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
413 17
|
5月前
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
975 16
|
5月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
308 41
|
3天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
27 1
|
3天前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
32 2
|
25天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
63 0

热门文章

最新文章