做公司企业网站标准尺寸,家政网站建设方案分析,网络营销话题讨论,aso优化重要吗tomcat介绍
tomcat和php一样#xff0c;都是用来处理动态页面的。 tomcat也可以作为web应用服务器#xff0c;开源的。
php .php tomcat .jsp nginx .html
tomcat 是用java代码写的程序#xff0c;运行的是javaweb应用程序
tomcat的特点和功能#xff1a; 1.servlet容器…tomcat介绍
tomcat和php一样都是用来处理动态页面的。 tomcat也可以作为web应用服务器开源的。
php .php tomcat .jsp nginx .html
tomcat 是用java代码写的程序运行的是javaweb应用程序
tomcat的特点和功能 1.servlet容器执行java servlet 服务端的Java程序处理客户端的http请求以及响应 2.jsp容器 javaserver page 动态页面技术可以在html页面嵌入Java代码 3.自身也是一个http服务器 4.tomcat是轻量级的动态页面处理程序高并发场景不适用 tomcat自身的优化 及系统内核优化jvm优化 servlet 是java语言中用于开发web应用程序的关键组件 处理http请求生成动态内容以及响应客户端请求 处理http请求 生成动态内容 处理java业务逻辑 会话管理 保持用户状态信息购物车同步用户登录等等 也可以转发nginx的动态请求到数据库 jsp:web应用程序界面使用java语言实现 .jsp为结尾的文件 index.jsp
tomcat 的组件
connector负责对外接收和响应请求是tomcat与客户端沟通的枢纽监听端口接收外接请求
端口: 8080 接收到了请求之后传递给其他组件进行处理处理完成之后回到connector ,再响应客户端。
container负责处理业务逻辑由 engine host context wrapper四个功能组成
engine:用来管理多个虚拟主机一个service只能有一个engine
host:一个host就是一个主机也可以叫站点 通过配置host可以添加多个站点
context:一个context代表一个web应用
wrapper:封装器负责处理最底层的逻辑
service对外提供web服务 包含connector和container
tomcat可以有多个service 每个service之间互相独立
tomcat目录的作用
1.bin 存放启动和关闭tomcat脚本的文件 startup.sh shutdown.sh
2.conf 存放tomcat的主配置文件 server.xml主配置文件 context.xml host的默认配置信息 tomcat-user.xml 登录时认证用户和密码的相关信息 lib tomcat运行时需要的jar包 一般不动 logs:日志文件 catalina.out 主日志文件 temp:存放tomcat运行时产生的文件 webapps用来部署web应用的目录类似于nginx的html
tomcat的优化
1.tomcat自身的优化 2.内核优化 3.jvm优化
tomcat的并发处理能力不强
优化tomcat的启动速度
file:/dev/urandom
非阻塞的版本不依赖系统的终端进程忙也不会进入等待状态。处理速度相对较快
如果对应用的安全性要求比较高使用 /dev/random
默认配置不适合生产环境可能频繁地出现假死需要不停的重启
根据实际情况自行测试
自身的优化
port 8080 http
8443 https
接收客户端https的请求
maxThreads:tomcat使用线程来处理接收请求的个数。即tomcat最多可以创建的线程默认200个 一般 500-1000个 minSpareThreads 最小空闲数线程tomcat开启之后没人使用也会有进程待命默认10 maxSpareThreads 最大空闲数线程一旦线程总数超过这个值tomcat就会关闭不再需要的线程默认-1不限制(不关闭其他线程)一般不设置 connectionTimeout20000网络连接超时时间单位是毫秒设置成0永不超时。默认状态即可 enableLookups 是否支持反向解析 true false 一般是false关闭提高处理速度 disableUploadTimeout 上传时是否使用超时机制true是关闭 ,false是开启 connectionUploadTimeout上传的超时时间 默认10s 一般 15 、20 acceptCount 当所有可用的处理请求的线程数都被使用时可以接入请求的最大队列长度超过这个数字的请求将被不予处理(直接丢弃)默认100个 compression 是否对响应数据进行压缩on开启off关闭默认off 。开启压缩之后可以有效地减少页面的大小(文本不会压缩图片音频视频)一般可以减少三分之一节省带宽(实测没什么用) compressionon之后 compressionMinSize 响应压缩的最小值只有响应的报文大于这个值才会压缩如果开启压缩默认值2048(2M) noCompressionUserAgents“浏览器名称” 对于这些浏览器不启用压缩。 compressableMimeType“text/plain,video/mp4” 压缩类型指定对哪些文件类型进行压缩
常用的页面类型 文本类型 text/plain text/html text/css text/javascript 图片类型 image/jpg image/jpeg image/gif 音频类型 audio/ogg、wav、mpeg 音频 video/mp4,webm,rmvb,quicktime 应用程序 application/pdf,json,xml
内核优化
系统安全的优化
1.vim /etc/security/limits.conf 打开文件数限制系统初始化第一步要做的事 2.内核参数文件 vim /etc/sysctl.conf net.ipv4.ip_forward0/1禁用/开启 数据包转发功能 如果做路由器必须打开0关1开 net.ipv4.tcp_max_tw_buckets2000 允许timewait的最大数量 net.ipv4.tcp_sack1 启用有选择的应答提高tcp的处理性能 net.core.netdev_max_backlog262144 字节 网络接口接受数据包队列的最大大小 vm.swappiness0,关闭内存的交换行为不使用交换分区k8s默认不能使用交换分区否者会报错 net.ipv4.tcp_max_orphans 系统允许的最大的tcp连接数量 net.ipv4.ip_local_port_range1024 65000 1024 65000 设定系统的端口范围 net.ipv4.tcp_fin_timeout10 设置tcp关闭连接的超时时间 net.ipv4.tcp_keepalive_time 设置tcp的keepalive包的探测包的发送频率用于检测连接状态
JVM优化
JAVA_OPTS“$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads2 -XX:PermSize1024m -XX:MaxPermSize1024m -Djava.awt.headlesstrue -XX:DisableExplicitGC” cygwinfalse
-Xms2048m java初始化堆的大小分配jvm的最小内存cpu的性能比较高可以分配的高一点。 -Xmx2048m Java堆的最大值即jvm的最大内存取决于物理内存的大小官方建议与xms一样 设置成物理内存的一半 -Xmn768m 新生代内存的大小官方推荐为jvm内存的最大值的3/8 java自带垃圾回收机制 java进行垃圾回收之后不需要重新计算堆区的大小
堆区:新生代 中生代 老生代 每生成一个新的对象对象占用的内存空间就是新生代空间 垃圾回收对堆区当中的资源进行回收之后新生代没有被回收的资源转移到中生代之前的中生代会转移到老年代。 整个jvm堆的大小新生代老生代永久代(系统自带的) -XX:ParallelGCThreads2 配置并行收集器的线程数同时有多少个线程一起来进行垃圾回收与cpu数目的一半 -XX:PermSize1024m 设置非堆内存的初始值持久代内存的大小默认物理内存的1/4建议设置为jvm内存的一半 持久代:非堆内存是不会被Java的垃圾回收机制处理的 -XX:MaxPermSize1024m 非堆内存的最大值与初始值一致 -Djava.awt.headlesstrue 防止在linux访问的情况下 web页面的图片不能打开 -XX:DisableExplicitGC 老年代的收集算法缩短垃圾回收机制回收的时间。 PS Eden Space 堆内存 创建一个新的对象都在对内存中新生代 PS Old Gen 堆内存长期存活的对象永生代 老年代 PS Survivor Space 堆内存PS Eden Space和 PS Old Gen 之间的存活对象中生代 CodeCache非堆内存存储已经编译的代码 Compressed Class Space非堆内存 存储已经压缩过的类定义 Metaspace非堆内存,存储元数据的区域。 ajp-nio-8009 ajp-nio 连接器的类型ajp是协议nio异步非阻塞的通信方式 ajp协议: tomcat服务 器和web服务器之间进行连接的协议,可以提供负载均衡和高效转发。nio可以提高并发的处理能力 8009就是ajp的默认端口。
tomcat和nginx实现动静分离 访问nginx就是静态页面 nginx代理 index.jsp 可以访问tomcat的动态页面