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 背景以及概…

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…

压缩软件电脑版哪个好?

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

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常…

arm-linux设备fsck命令移植

arm-linux设备fsck命令移植 文章目录 **arm-linux设备fsck命令移植**1、下载e2fsprogs-源码2、解压3、进入源码目录4、配置编译环境&#xff1a;使用以下命令配置交叉编译环境5、测试 1、下载e2fsprogs-源码 首先要确定自己的文件系统格式&#xff0c;IG2000的文件系统是ext4&…

Leetcode每日一题(分割回文串Ⅰ)

分割回文串Ⅰ import java.util.ArrayList; import java.util.List;class Solution {private List<List<String>> ans new ArrayList<>();boolean f[][] new boolean[1010][1010];//i到j的字符是否为回文串public static void main(String[] args) {Sys…

设计模式——策略模式(Strategy Pattern)

概述 策略模式又叫政策模式&#xff0c;是一种对象行为型模式。它是将定义的算法家族分别封装起来&#xff0c;让它们之间可以互相替换&#xff0c;从而让算法的变化不会影响到使用算法的用户。策略模式的主要目的是将算法的定义与使用分开&#xff0c;也就是将算法的行为和环…

Linux-----11、压缩打包

# 打包压缩 # 一、压缩工具 # 1、常见的压缩与解压缩工具 压缩工具说明解压缩工具zip兼容类unix与windows&#xff0c;可以压缩多个文件或目录unzipgzip压缩单个文件&#xff0c;压缩率相对低&#xff0c;cpu开销相对低gunzipbzip2压缩单个文件&#xff0c;压缩率相对高&…

Linux运维 网工应知必会 100 个知识点总结!

1&#xff09;什么是链接&#xff1f; 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2&#xff09;OSI 参考模型的层次是什么&#xff1f; 有 7 个 OSI 层&#xff1a;物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0…

Ubuntu Desktop 22.04 禁用自动更新

Ubuntu 的自动更新并不稳定&#xff0c;之前的一次推送更新了内核版本&#xff0c;稳定性影响比较大&#xff0c;禁用自动更新的方法如下&#xff1a; 1.在设置里禁用软件更新 2.关闭 unattended-upgrades 如果只禁用上面的更新&#xff0c;unattended-upgrades 还是会在后台…

大数据云计算——使用Prometheus-Operator进行K8s集群监控

大数据云计算——使用Prometheus-Operator进行K8s集群监控 一、 背景 在非operator配置的普罗中我们监控k8s集群都是通过配置configmap进行服务发现和指标拉取。切换到prometheus-operator难免会有些使用问题。不少用户已经习惯底层配置自动发现的方式。当过渡到servicemonit…

C# OpenCvSharp DNN 部署FastestDet

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN 部署FastestDet 效果 模型信息 Inputs ------------------------- name&#xff1a;input.1 tensor&#xff1a;Float[1, 3, 512, 512] --------------------------------------------------------------- Outpu…