tomcat优化

目录

一.tomcat的优化

二.nginx+tomcat负载均衡、动静分离

三.nginx的反向代理类型

四.nginx的调度算法(调度策略、负载均衡模式)

五.nginx反向代理如何实现会话保持


一.tomcat的优化

tomcat的优化分为:系统优化,配置文件参数优化,JVM优化(java虚拟机)。

配置文件优化,修改配置文件:

系统内核优化:/etc/security/limits.conf(内核限制文件 )noproc 打开的进程数,nofile打开的文件数,memlock unlimited 不做内存锁定。

/etc/sysctl.conf(内核参数配置文件 )net.ipv4.tcp_tw_reuse = 1开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接;net.ipv4.tcp_tw_recycle = 1 开启TCP连接中TIME-WAIT sockets的快速回收;net.ipv4.tcp_keepalive_time = 600 发送keepalive探测包消息的频率,确认客户端是否断网;net.ipv4.tcp_fin_timeout = 30 修改系默认的 TIMEOUT 时间

net.ipv4.tcp_syncookies = 1 开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。

java虚拟机JVM优化:修改/usr/local/tomcat/bin/catalina.sh,在 cygwin=false 配置前添加 JAVA_OPTS 参数 JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Xmn768m -XX:ParallelGCThreads=2"

-server:启动Server模式 多核服务器性能更佳

-Xms2048m -Xmx2048m:设置JVM堆内存初始值和最大值为一样大,一般设置为物理内存的1/2

-XX:PermSize=1024m -XX:MaxPermSize=1024m: 设置永久代(非堆内存)初始值和最大值为一样大,一般设置为物理内存的1/4。

二.nginx+tomcat负载均衡、动静分离

由于nginx不能处理动态页面的请求,只能转发给tomcat来处理。客户端发送的静态页面是nginx本身自己处理,动态页面则是由nginx作为客户端转发给tomcat来处理动态,并返回给nginx。

跟着上面步骤继续操作,在tomcat网页页面下添加网页内容:

在到另一台多实例部署的tomcat主机上添加网页页面:

到tomcat1中添加:

在到tomcat2中添加:

访问下页面:

现在我们已经准备好了tomcat配置,我们到另一台主机上设置nginx:

先创建网页目录,做静态资源内容:

在添加图片:

回到nginx的配置文件目录下,并修改配置文件:

要有空格。

重启后看下状态:

访问页面(注意访问时先清除缓存记录在访问):

静态页面:

动态页面:

每次刷新都能显示不一样的页面。我们访问的是nginx服务器,在网页目录下没有ky33这个网页目录及内容,是通过tomcat来进行处理的。

三.nginx的反向代理类型

四层反向代理 :基于 IP + PORT 实现的代理转发(根据IP和PORT来转发请求),通常用于做客户端的访问入口和负载均衡器等应用场景。

配置:

1,编译安装需要 ./configure --with-stream 添加四层代理模块

2,在 http 同层级,一般在 http 配置块上面添加 stream 配置块,在里面定义服务器池、监听端口和转发配置

七层反向代理:基于 http、https、mail 等七层应用协议的代理转发(根据用户访问请求的URL路径来转发请求),通常用于动静分离等应用场景。

配置:

1,在 http 配置块中设置 upstream 定义 后端/上游服务器池的名称和节点参数

2,在 server 配置块中用 location 匹配用户访问请求的URL路径,使用 proxy_pass 基于协议转发请求

需要再准备两台服务器:

切换到配置好nginx的服务器test3上,远程复制nginx到test4上:

看下有没有nginx:

 创建用户:

在下载依赖包:

到test3中复制网页目录到test4中:

在将由systemd管理的文件复制过去:

到test4中开启nginx:

用test3和test4作为nginx四层代理的服务器。

到两台服务器的网页内容进行修改下,方便识别:

访问网页:

建议把双方的长连接配置关闭掉,避免等待:

在到test5上做nginx四层代理:

进行本地yum源安装nginx:

切换到nginx 的配置文件目录内:

修改配置文件下添加stream模块:

检查配置文件是否错误:

访问静态页面:

访问动态页面:

四.nginx的调度算法(调度策略、负载均衡模式)

轮询(round robin、rr) nginx默认的调度算法,按照时间顺序逐一分配请求

加权轮询(weight round robin、wrr) 使用weight参数设置权重,weight值越高的后端节点被分配请求的概率越大

least_conn(最小连接、最少连接) 优先给当前连接数最少的后端节点分配请求

ip_hash(源地址哈希) 根据客户端IP做hash缓存调度,分配请求给固定的一个后端节点

url_hash 根据客户端访问的URL路径做hash缓存调度,分配请求给固定的一个后端节点,需另外安装第三方模块

fair 优先给响应时间最少的后端节点分配请求,需另外安装第三方模块

random 随机分配

hash $remote_addr(nginx全局变量) consistent 一致性hash算法,根据客户端IP做hash调度,是ip_hash的加强版

五.nginx反向代理如何实现会话保持

 1.ip_hash url_hash 一致性hash算法 基于客户端IP或访问的URL路径做哈希缓存实现会话保持,但是容易导致负载失衡

2.sticky_cookie_insert 另外安装第三方的sticky模块,基于cookie来判断实现会话保持

3.通过redis等数据库做session复制,使用后端服务器自身通过相关机制保持session同步来实现会话保持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GoLong的学习之路,进阶,微服务之序列化协议,Protocol Buffers V3

这章是接上一章,使用RPC包,序列化中没有详细去讲,因为这一块需要看的和学习的地方很多。并且这一块是RPC中可以说是最重要的一块,也是性能的重要影响因子。今天这篇主要会讲其使用方式。 文章目录 Protocol Buffers V3 背景以及概…

IT圈“鄙视链”大揭秘:谁是最强王者?

1. 引言:IT圈的“鄙视链”大剧 在IT从业者茶余饭后的交谈中,一个不可忽视的元素就是那个无形的“鄙视链”。从“我们写后端的看不起写前端”的传统对立,到各种语言、框架、工具的PK,这场鄙视链的情感大戏如火如荼上演。然而&…

Win32 HIWORD和LOWORD宏学习

HIWORD是High Word的缩写,作用是取得某个4字节变量(即32位的值)在内存中处于高位的两个字节,即一个word长的数据; LOWORD是Low Word的缩写,作用是取得某个4字节变量(即32位的值)在内存中处于低位的两个字节,即一个word长的数据; Win32编程常用; Win32窗口编程中,收到 WM_S…

RHEL7.5编译openssl1.1.1w源码包到rpm包

openssl1.1.1w下载地址 https://www.openssl.org/source/ 安装依赖包 yum -y install curl which make gcc perl perl-WWW-Curl rpm-build wget http://mirrors.aliyun.com/centos-vault/7.5.1804/os/x86_64/Packages/perl-WWW-Curl-4.15-13.el7.x86_64.rpm rpm -ivh pe…

JVM之堆学习

一、Java虚拟机内存结构图 二、堆的介绍 1. 前面学习的程序计数器,虚拟机栈和本地方法栈都是线程私有的,堆是线程共享的; 2. 通过 new 关键字,创建的对象都会使用堆内存,其特点是: 它是线程共享的&#x…

【每日一题】【面试经典150 | 动态规划】爬楼梯

Tag 【动态规划】【数组】 题目来源 70. 爬楼梯 题目解读 有过刷题「动态规划」刷题经验的读者都知道,爬楼梯问题是一种最典型也是最简单的动态规划问题了。 题目描述为:你每次可以爬 1 或者 2 个台阶,问爬上 n 阶有多少种方式。 解题思路…

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.探路者算法4.实验参数设定5.算法结果6.参考文…

开源书籍—鸢尾花书:从加减乘除到机器学习系列 | 开源专题 No.50

Visualize-ML/Book1_Python-For-Beginners Stars: 2.4k License: NOASSERTION 《编程不难》是一本名为鸢尾花书的开源项目,它从基础的加减乘除开始,逐步引导读者进入机器学习领域。该项目提供了 PDF 草稿和 Jupyter 笔记,并经过至少两轮修改…

LED恒流调节器FP7125,应用LED街道照明、调光电源、汽车大灯、T5T8日光灯

目录 一、FP7125概述 二、FP7125功能 三、应用领域 近年来,随着人们环保意识的不断增强,LED照明产品逐渐成为照明行业的主流。而作为LED照明产品中的重要配件,LED恒流调节器FP7125的出现为LED照明带来了全新的发展机遇。 一、FP7125概述 FP…

OBS实时字幕(第三第四种方法)

我的视频地址 https://www.bilibili.com/video/BV1uN411V7uG基于wispper的obs实时字幕插件,中文支持不太好,需要加载模型 github.com/occ-ai/obs-localvocal推荐使用这个 下面参考B站 www.bilibili.com/video/BV11u411G7Vt Curses:为OBS、V…

【NSX-T】7. 搭建NSX-T环境 —— 部署和配置 Edge Cluster

目录 7. 部署和配置 Edge Cluster7.1 配置 Edge 节点(1)Name and Description(2)Credentials(3)Configure Deployment(4)Configure Node Settings(5)Configur…

抖音ip地址切换会看不到视频吗

随着社交媒体平台的快速发展,抖音已经成为了许多人分享生活点滴、展示才艺的热门平台。然而,有时候使用抖音时会遇到一些问题,比如IP地址切换后无法观看视频。那么,为什么会出现这种情况呢?让我们分析一下。 首先&…

剑指 Offer(第2版)面试题 25:合并两个排序的链表

剑指 Offer(第2版)面试题 25:合并两个排序的链表 剑指 Offer(第2版)面试题 25:合并两个排序的链表解法1:递归解法2:迭代 剑指 Offer(第2版)面试题 25&#xf…

深度学习之模型层

深度学习模型通常由许多不同类型的层组成,每个层都有其特定的功能和用途。以下是一些常见的深度学习层以及它们的术语和解析: 全连接层(Fully Connected Layer): 术语: 输入层(Input Layer):接收模型输入的层。输出层(Output Layer):产生模型输出的层。权重(Weight…

WT588F02KD-24SS语音芯片集成数码管显示驱动算法:声音播放提示的智能升级

在语音技术的不断发展中,一颗新型的唯创知音WT588F02KD-24SS语音芯片引起了广泛关注,其特色在于集成了可直接调用的数码管显示驱动算法。本文将深入探讨这一创新技术的好处,以及它对声音播放提示的智能升级所带来的优势。 一、集成数码管显示…

压缩软件电脑版哪个好?

压缩软件是我们存储文件、清理电脑、向他人发送文件经常用到的工具,下面就从头到尾操作一遍各个软件压缩步骤,根据需求选择好啦。可以放心的是,这四款软件都经过了安全测试,能够保证文件的安全性,并且能够兼容多种操作…

安卓10 flutter webview 回退会闪退

现象 在安卓10设备上,访问了webview页面后,回退到其他页面后,大概率会闪退,请查看issuses https://github.com/flutter/flutter/issues/78405 解决思路:在回退前,先把webview销毁掉,重新生成一个…

第二百零六回

文章目录 1. 概念介绍2. 使用方法3. 示例代码 我们在上一章回中介绍了Flutter中的异步操作,本章回中将介绍Flutter中的事件流.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在上一章回中介绍了异步操作相关的内容,本章回中将介绍如…

qt-C++笔记之模拟实现一个linux终端窗口

qt-C笔记之模拟实现一个linux终端窗口 code review! 文章目录 qt-C笔记之模拟实现一个linux终端窗口一.运行二.main.cpp三.不足&#xff0c;待改进点 一.运行 二.main.cpp 代码 #include <QApplication> #include <QPlainTextEdit> #include <QLineEdit>…

微服务技术 RabbitMQ SpringAMQP P61-P76

B站学习视频https://www.bilibili.com/video/BV1LQ4y127n4?p61&vd_source8665d6da33d4e2277ca40f03210fe53a 文档资料: 链接&#xff1a;https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码&#xff1a;d03r 一 初始MQ 1. 同步通讯 2. 异步通讯 3. MQ常…