Web 进阶——Tomcat

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

connectionTimeout=“20000”

redirectPort=“8443”

compression=“on” # 开启压缩

compressionMinSize=“10” # 指定最小压缩文件. 单位是字节

noCompressionUserAgents=“gozilla,traviata” # 此浏览器类型不进行压缩

compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain”/> # 压缩文件的格式

[root@Tomcat ROOT]# /usr/local/tomcat/bin/shutdown.sh # 关闭 Tomcat 服务

[root@Tomcat ROOT]# /usr/local/tomcat/bin/start.sh # 开启 Tomcat 服务

  • 注意:如果客户端是通过代理来访问后端服务器时,则没有必要配置页面传输压缩。

验证:

在这里插入图片描述

4.Tomcat 的三种模式切换


Java 对 BIO、NIO、APR 的支持:

| 模式 | 默认运行版本 | 作用 |

| :-- | :-- | :-- |

| BIO(同步阻塞) | Tomcat7 版本以下 | 一个线程处理一个请求;缺点:并发量高时,线程数较多,浪费资源。 |

| NIO(同步非阻塞) | Tomcat7 版本以上 | 利用 Java 的异步请求 IO 处理,可以通过少量的线程处理大量的请求。 |

| APR(异步非阻塞) | 需手动更改 | 从操作系统层面解决 IO 阻塞问题;从而大大地提高 Tomcat 对静态文件的处理性能。 |

在这里插入图片描述

1)BIO、NIO、APR 适用场景分析

  • BIO:适用于连接数目比较少且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4 以前的唯一选择。

  • NIO:适用于连接数目多且比较短的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4 开始支持。

  • APR:适用于连接数目多且连接比较长的架构,比如相册服务器,充分调用 OS 参与并发操作,编程比较复杂,JDK1.7 开始支持。

2)配置

  • 注意:因为 Tomcat7 版本以上默认使用的是 NIO 模式,所以不再进行配置。

Apr 模式配置:

[root@Tomcat ~]# yum -y install apr apr-devel

[root@Tomcat ~]# cp /usr/local/tomcat/bin/tomcat-native.tar.gz /root/

[root@Tomcat ~]# tar zxf tomcat-native.tar.gz

[root@Tomcat ~]# ls

… tomcat-native.tar.gz tomcat-native-1.2.17-src

[root@Tomcat ~]# cd tomcat-native-1.2.17-src/native/

[root@Tomcat native]# ./configure \

–with-apr=/usr/bin/apr-1-config && make && make install

安装成功会提示如下:

Libraries have been installed in:

/usr/local/apr/lib

[root@Tomcat ~]# cat <> /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS=“-Djava.library.path=/usr/local/apr/lib”

END

[root@Tomcat ~]# vim /usr/local/tomcat/conf/server.xml #修改主配置文件

将:

<Connector port=“8080” protocol=“HTTP/1.1”

修改为:

<Connector port=“8080” protocol=“org.apache.coyote.http11.Http11AprProtocol”

  • 注意:当修改为其它模式时,只需要将 Http11AprProtocol 中的 Apr 替换为其它模式即可。

[root@Tomcat ~]# cat <> /etc/profile # 配置环境变量

export LD_LIBRARY_PATH=:/usr/local/apr/lib

END

[root@Tomcat ~]# source /etc/profile # 使其生效

[root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh # 关闭 Tomcat 服务

[root@Tomcat ~]# /usr/local/tomcat/bin/start.sh # 开启 Tomcat 服务

3)查看 Tomcat 服务状态

[root@Tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml

在最后一行 前面添加:

如上五条命令只是设置角色

默认 Tomcat 的管理页面只能通过 Tomcat 服务器上的浏览器才可以访问,设置其可以在其他主机访问

[root@Tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

验证:http://192.168.1.1:8080/manager/status

在这里插入图片描述

5.生产环境 Tomcat 配置


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

<Connector port=“8080” protocol=“org.apache.coyote.http11.Http11NioProtocol” # 工作模式为 Nio

URIEncoding=“UTF-8” # 设置编码

minSpareThreads=“25” # 初始化时创建的 socket 线程数

maxSpareThreads=“75” # 连接器的最大空闲 socket 线程数. 一旦创建的线程超过这个值. Tomcat就会关闭不再需要的 socket 线程

enableLookups=“false” # 屏蔽 DNS 查询

disableUploadTimeout=“true” # 开启 上传数据时. 要么使用更长的时间完成上传. 要么出现更长的超时

connectionTimeout=“20000” # 网络超时时间. 单位:毫秒

acceptCount=“300” # 允许的最大连接数. 一般设置为 maxProcessors 的 1.5 倍即可. 超出后客户端请求将被拒绝

maxThreads=“300” # 客户端请求最大线程数. 默认值为 “200”

maxProcessors=“1000” # 最大连接线程数. 并发处理的最大请求数. 默认值为75

minProcessors=“5” # 最小空闲连接线程数. 用于提高系统处理性能. 默认值为10

compression=“on” # 开启压缩功能

compressionMinSize=“2048” # 指定最小的压缩文件. 单位是字节

compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain” # 压缩文件的格式

redirectPort=“8443” # 开启安全通道 SSL

/>

6.JVM 内存管理机制


1)堆和非堆内存

JVM 主要管理两种类型的内存:

  • :简单来说堆就是 Java 代码可及的内存,是留给开发人员使用的。

  • 非堆:非堆就是 JVM 留给自己用的,所以方法区、JVM 内部处理或优化所需的内存(如 JIT 编译后的代码缓存);

  • 每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

内存分配:JVM 堆和非堆的初始值默认都是物理内存的 1/64,最大分配内存为 1/4

2)修改内存等 JVM 相关配置

[root@Tomcat ~]# vim /usr/local/tomcat/bin/catalina.sh

在 CLASSPATH= 下面添加:

JAVA_OPTS=“-Xms2048M -Xmx2048M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M”

  • -Xms:设置堆最小内存。

  • -Xmx:设置堆最大内存。

  • -XX:MetaspaceSize:设置非堆最小内存。

  • -XX:MaxMetaspaceSize:设置非堆最大内存。

3)验证

设置成功后我们可以利用 JDK 自动的工具进行验证:

  • jps:用来显示本地的 Java 进程,以及进程号,进程启动的路径等。

  • jmap:能够查看运行中的 JVM 物理内存的占用情况。

[root@Tomcat ~]# jps # 查看本地 Java 进程号

15703 Jps

15576 Bootstrap

[root@Tomcat ~]# jmap -heap 15576 # 查看 JVM 物理内存占用情况

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
6990909)]

[外链图片转存中…(img-GNI7PfGw-1715706990910)]

[外链图片转存中…(img-FplNmFiq-1715706990910)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值