2021-07-12

tomcat的部署以及优化

    一.tomcat介绍
    二.tomcat的核心组件
        (1)web容器
        (2)JSP容器(Java server pages)
        (3)Servlet容器
    三.tomcat处理请求的过程
    四.tomcat部署安装
        1.下载JDK编译器
        2.查看java版本
        3.设置JDK的环境变量
        4.下载解压安装包
        5.主要目录说明
        6.优化管理路径创建软链接
        7.开启服务,查看服务
        8.浏览器访问
    五.tomcat优化
        1.优化启动速度
            (1)修改配置文件
            (2)重启服务
            (3)主配置文件主要参数说明
        2.配置tomcat虚拟主机
            (1)添加本地映射
            (2)创建项目目录
            (3)编辑网页内容
            (4)修改主配置文件
            (5)重启服务
            (6)网页验证
        3.配置文件参数优化
    六.nginx+tomcat
        1.环境准备
        2.tomcat1相关配置
            (1)创建测试目录,修改动态页面内容
            (2)添加虚拟主机配置
            (3)重启服务
        3.tomcat2相关配置
            (1)创建测试目录,修改动态页面内容
            (2)添加虚拟主机配置
            (3)重启服务
        4.nginx相关配置
            (1)配置静态页面
            (2)修改配置文件
            (3)重启服务
        5.网页验证
            (1)访问192.168.206.186
            (2)访问192.168.206.186/index.jsp![在这里插入图片描述](https://img-blog.csdnimg.cn/20210708023334216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1Z3VhaTc=,size_16,color_FFFFFF,t_70)
            (3)刷新访问192.168.206.186/index.jsp
    七.总结

一.tomcat介绍

Tomcat是一款免费、开放源代码的web应用服务器,是Apache软件基金会的一个核心开源项目,属于轻量级应用服务器

Tomcat 是Apache的扩展,是Apache的一个子项目,它具备Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的Java代码Servlet,同时将执行的结果以HTML代码的形式写回客户端

是开发运行平台和环境,是处理动态请求的一个web服务

官网为: https://tomcat.apache.org/
二.tomcat的核心组件
(1)web容器

负责web服务的TCP/IP、HTTP等协议响应、处理
(2)JSP容器(Java server pages)

是一种动态网页开发技术,它是使用JSP标签在HTML网页中插入JAVA代码,标签通常以<%开头,以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序程序的用户界面部分
JSP通过网页表单获取用户输入数据,访问数据库及其他数据源,然后动态地创建网页

JSP:容器内提供了多个以index.jsp为结尾的JAVA前端页面展示,而index.jsp中由很多HTML标签,HTML标签中会嵌套很多Java代码,这些Java代码,最终会被翻译为servlet代码,
(3)Servlet容器

动态交互处理,会将JSP传递过来的代码翻译成servlet,由Catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务(比如与数据库交互、加密、支付宝、人脸识别)

Catalina实际处理的是servlet代码,而servlet代码是由Java编写的
三.tomcat处理请求的过程

(1)用户点击网页内容,请求被发送到本机端口8080,被在哪里监听的coyote(Tomcat连接器框架、基础环境),HTTP/1.1connect(连接器,用于对接请求)获得

(2)接受请求之后交给container中的engine进行处理,engine(引擎)作为容器运行的动力核心

(3)基于引擎支撑,容器中会跑很多host虚拟主机,这些虚拟主机中也会有很多context,此处的context功能可以理解为:将Java前端和Java后端连接的展示的枢纽

(4)servelet处理完成后会返回context

(5)context返回engine引擎

(6)engine返回端口

(7)端口最后将页面展现给用户
四.tomcat部署安装
1.下载JDK编译器

[root@server opt]# ls
apache-tomcat-9.0.16.tar.gz  mysql-5.7.20               php-7.1.10
Discuz_X3.4_SC_UTF8.zip      mysql-boost-5.7.20.tar.gz  php-7.1.10.tar.bz2
fenge.sh                     nginx-1.15.9               rh
jdk-8u201-linux-x64.rpm      nginx-1.15.9.tar.gz

[root@server opt]# rpm -ivh jdk-8u201-linux-x64.rpm

警告:jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:jdk1.8-2000:1.8.0_201-fcs        ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
[root@server opt]#

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

2.查看java版本

[root@server opt]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

 

 

3.设置JDK的环境变量

[root@server opt]# vim /etc/profile.d/java.sh

[root@server opt]# source /etc/profile.d/java.sh

[root@server opt]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

 

4.下载解压安装包

[root@server opt]# tar zxf apache-tomcat-9.0.16.tar.gz
[root@server opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat

 

5.主要目录说明

[root@server opt]# cd /usr/local/tomcat
[root@server tomcat]# ls
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp

 

bin :存放启动和关闭Tomcat 的脚本文件,比较常用的是catalina.sh、startup.sh、shutdown.sh三个文件

conf :存放Tomcat服务器的各种配置文件,比较常用的是server. xml(主配置文件)、context.xml、 tomcat-users.xml、web.xml四个文件

lib :存放Tomcat服务器的jar包,一般不作任何改动,除非连接第三方服务,比如redis那就需要添加相对应的jar包

logs:存放Tomcat日志

temp :存放Tomcat 运行时产生的文件

webapps:存放项目资源的目求

work: Tomcat.工作目录,一般清除Tomcat缓存的时候会使用到
6.优化管理路径创建软链接

[root@server opt]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@server opt]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

 

7.开启服务,查看服务

[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@server opt]# netstat -antp |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      50259/java
[root@server opt]#

 

 

8.浏览器访问


五.tomcat优化
1.优化启动速度

 

生产环境中第一次启动tomcat可能会发现 tomcat启动很慢,默认情况下可能需要几十秒,此时可以修改jdk参数进行优化。
(1)修改配置文件

[root@server opt]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security

    1


说明:/dev/random和/dev/urandom都是伪终端,但是/dev/urandom(随机值)提供的数据流更快(默认系统会有很多外界因素的影响,造成随机性并不是很好,使用urandom优化可以提供更好的数据流)
(2)重启服务

 

[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

 

(3)主配置文件主要参数说明

[root@server opt]# vim /usr/local/tomcat/conf/server.xml


2.配置tomcat虚拟主机

 

很多时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个Tomcat服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机

例如现在新增两个域名www. gogo.com和www.hoho.com,希望通过这两个域名访问到不同的项目内容(这里要注意,tomcat通过虚拟主机实现的是不同的项目内容)
(1)添加本地映射

[root@server opt]# vim /etc/hosts

    1


(2)创建项目目录

 

[root@server opt]# mkdir /usr/local/tomcat/webapps/gogo
[root@server opt]# mkdir /usr/local/tomcat/webapps/hoho

 

(3)编辑网页内容

[root@server opt]# echo "<h1>this is gogo page!</h1>" > /usr/local/tomcat/webapps/gogo/index.jsp
[root@server opt]# echo "<h1>this is hoho page!</h1>" > /usr/local/tomcat/webapps/hoho/index.jsp

 

(4)修改主配置文件

[root@server opt]# vim /usr/local/tomcat/conf/server.xml

  

 

在这里插入图片描述

配置详解
Host name :主机名

appBase : Tomcat程序工作目录,相对路径为webapps, 绝对路径为/usr/local/tomcat/webapps

unpackWARs :tomcat在webapps文件夹中发现war文件时,是否自动将其解压

autoDeploy :设为true,则web.xml发生变化时,tomcat自动重新部署程序。实现这个功能必需允许后台处理

xmlValidation :是否开启对XML文件的验证

xmlNamespaceAware :是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验

docBase : WEB应用的目录(本地路径)

path: 设置访问的URI为WEB应用的根目录(URL路径), ""表示默认,加载系统中自带的类(class文件)

reloadable :是否在程序有改动时重新载入
(5)重启服务

[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

(6)网页验证


3.配置文件参数优化

 

 

[ maxThreads ] :Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat 可创建的最大的线程数,默认值是200。

[ minSpareThreads ]:最小空闲线程数,Tomcat启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是10。

[ maxSpareThreads ]:最大备用线程数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的socket线程。默认值是:-1 (无限制)。一般不需要指定。

[ URIEncoding ]:指定Tomcat容器的URL编码格式,语言编码格式这块倒不如其它Web服务器软件配置方便,需要分别指定。

[ connnectionTimeout ]:网络连接超时,单位:亳秒,设置为0表示永不超时,这样设置有隐患的。通常默认20000亳秒就可以。

[ enableLookups ]:是否反查域名,以返回远程主机的主机名,取值为: true 或false,如果设置为false,则直接返回IP地址,为了提高处理能力,应设置为false。

[ disableUploadT imeout ] :上传时是否使用超时机制。应设置为true。(解锁开启)

[ connect ionUploadTimeout]:上传超时时间,毕竞文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使Servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才 会生效。(具体的机制)

[ acceptCount]:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不子处理,默认为100个。

[ compression ]:是否对响应的数据进行GZIP压缩,off:表示禁止压缩; on: 表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为off,压缩数据后可以有效的减少页面的大小,–般可以减小1/3左右,节省带宽。force:强制执行

[ compressionMinSize] :表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是2048

[ compressableMimeType ]:压缩类型;指定对哪些类型的文件进行数据压缩。

[ noCompressionUserAgents=“gozilla, traviata” ]:对于以下的浏览器,不启用压缩

修改配置文件参数

[root@server opt]# vim /usr/local/tomcat/conf/server.xml

    1


重启服务

 

[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server opt]# 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/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@server opt]#

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

六.nginx+tomcat

以LNMP为例,一个企业内部最基础的架构组成需要一个处理静态Web服务的页面,一个动态Web服务的页面和数据库而我们实现了在Linux平台上,实现了Nginx + PHP实现动静分离,而实际生产中往往一台nginx需要“对应”多个动态处理的服务(及tomcat),所以如何将前端接收到的动态请求转交给后端多个tomcat处理,是我们此处研究的内容
1.环境准备

一台nginx,2台tomcat,1台win10客户机
nginx 192.168.206.186
tomcat1 192.168.206.77
tomcat2 192.168.206.177
2.tomcat1相关配置
(1)创建测试目录,修改动态页面内容

[root@localhost opt]# mkdir /usr/local/tomcat/webapps/test
[root@localhost opt]# vim /usr/local/tomcat/webapps/test/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page </title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

 


(2)添加虚拟主机配置

 

[root@localhost opt]# vim /usr/local/tomcat/conf/server.xml


(3)重启服务

 

[root@localhost opt]# 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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost opt]# 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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

3.tomcat2相关配置
(1)创建测试目录,修改动态页面内容

[root@server ~]# mkdir /usr/local/tomcat/webapps/test
[root@server ~]# vim /usr/local/tomcat/webapps/test/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page </title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>

 

在这里插入图片描述
(2)添加虚拟主机配置

[root@localhost opt]# vim /usr/local/tomcat/conf/server.xml

    1

在这里插入图片描述
(3)重启服务

[root@localhost opt]# 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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost opt]# 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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

4.nginx相关配置
(1)配置静态页面

[root@localhost ~]# echo '<html><body><h1>this is static</h1></body></html>' > /usr/local/nginx/html/index.html

    1

(2)修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

    1


说明:

 

proxy_set_header HOST $host;
##设定后端的web服务器接收到的请求访问的主机名(域名或ip、端口),默认host的值为proxy_pass直连设置的主机

proxy_set_header X-Real-IP $remote_addr;
##把 $ remote_addr复制给X-Real-IP(自定义),来回去源IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
##在nginx最为代理服务器时,设置的IP列表,会把经过的及其ip,代理及其ip都记录下来
(3)重启服务

[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      20773/nginx: master
[root@localhost ~]#

 

5.网页验证
(1)访问192.168.206.186

在这里插入图片描述
(2)访问192.168.206.186/index.jsp

 


(3)刷新访问192.168.206.186/index.jsp

 

 
七.总结

主要介绍了tomcat的部署安装优化以及tomcat和NGINX的集成
 

https://blog.csdn.net/guguai7/article/details/118447074

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值