nginx负载均衡、java、tomcat装包

一、nginx 七层负载均衡

1、七层负载均衡基础配置

2、负载均衡状态

[root@server]# vim /usr/local/nginx/conf/nginx.confworker_processes 1;event {worker_connections 1024;}http {      # 七层负载均衡支持http、ftp协议include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream qicengzu {     # 服务器组,组名qingcengzuserver 192.168.33.11:8080;     # 组内服务器1server 192.168.33.22:8080;     # 组内服务器2}server {     # 虚拟服务器listen 80;     # 虚拟服务器端口server_name localhost;     # 虚拟服务器名location {    # 虚拟服务器的url跳转proxy_pass http://qicengzu;# 当访问本机的80端口时,跳转到服务器组}}}

 3、负载均衡策略

(1)轮询

upstream backend {server 192.168.33.11:8080;server 192.168.33.22:8080;}

 

(2)weight加权

upstream backend {server 192.168.33.11:8080 weight=5;server 192.168.33.22:8080 weight=2;    # 权重默认为1,谁权重大,谁优先处理请求}

(3)ip_hash

1)当对后端的多台动态应用服务器做负载均衡时,ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。

2)这样,当来自某一个IP的用户在后端Web服务器A上登录后,再访问该站点的其他URL,能保证其访问的还是后端web服务器A。

3)注意: 使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些后端服务器接收到的请求多,有些后端服务器接受的请求少,而且设置后端服务器权重等方法将不起作用。

upstream backend {ip_hash; # ip_hash算法server 192.168.33.11:8080;server 192.168.33.22:8080;}

(4)least_conn

least_conn:最少连接,把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,leastconn这种方式就可以达到更好的负载均衡效果。

upstream backend {least_conn; # 将请求转发给连接数较少的后端服务器server 192.168.33.11:8080;server 192.168.33.22:8080;}

(5)url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用ur_hash,可以使得同一个url (也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以从缓存中读取。

upstream backend {hash $request_uri;server 192.168.33.11:8080;server 192.168.33.22:8080;}

二、nginx四层负载均衡

1、四层使用 stream 模块,与七层的 http 模块同级。

[root@localhost ~]# nginx -V
nginx version: nginx/1.22.1built by gcc 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)built with OpenSSL 1.1.1k FIPS 25 Mar 2021TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx--with-httpssl module --withhttp_stub status_module --with-http_realip module
[root@localhost ~]# cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginxbak   #将原有/usr/local/nginx/sbin/nginx进行备份[root@localhost ~]# cd /usr/src/nginx-1.22.1/[root@localhost nginx-1.22.1]# Isauto CHANGES CHANGES.ru configure html Makefile objsconf contrib LICENSE man README src
[root@localhost nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --withhttp_ssl_module --with-http_stub_status_module --withhttp_realip_module --with-stream     # 安装指定模块[root@localhost nginx-1.22.1]# make # 进行编译
[root@localhost nginx-1.22.1]# cp ./objs/nginx  /usr/local/nginx/sbin/ # 将obis下面的nginx移动到/usr/local/nginx/sbin下[root@localhost nginx-1.22.1]# nginx -V    # 模块添加成功nginx version: nginx/1.22.1built by gcc 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)built with OpenSSL 1.1.1k FIPS 25 Mar 2021TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx--with-httpssl module --withhttp_stub status_module --with-http_realip module --withstream
[root@server ~]# vim /usr/local/nginx/conf/nginx.conf
events {worker_connections 1024;}stream {upstream dongtai {    # 配置dongtai服务器组server 192.168.33.11:8080;    # 动态资源走tomcat的8080端口server 192.168.33.22:8080;}server {listen 81;     # 设置监听端口proxy_pass dongtai;  #当请求访问到本机的81端口时,将请求转发到dongtai组}upstream jingtai {    # 配置jingtai服务器组server 192.168.33.33:80; # 静态资源走nginx或tomcat的80端口server 192.168.33.44:80;}server {listen 82;proxy_pass jingtai;}}

三、java环境的配置

1、下载jdk22

wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz

2、解压

tar -zxvf jdk-22.2.tar.gz

3、移动到usr目录

mv jdk-22.2/ /usr/local/jdk22/

4、修改配置文件

vim /etc/profire……export JAVA_HOME=/usr/local/jdk22/export PATH=$JAVA_HOME/bin:$PATH

5、运行profile

source /etc/profile

6、测试

javajava -version

四、tomcat的配置

1、tomcat启动服务

/usr/local/tomcat/bin/startup.sh    //启动
netstat -lnput|grep java     //端口状态
8080
8005
/usr/local/tomcat/bin/shutdown.sh    //停用

2、tomcat的目录

(1)bin

1)可执行文件

A.在window和linux通用

B. win10上优化之后上传到linx,只需要添加权限就可以了

C. win对应的文件的扩展名为bat(批处理文件)

D. linux对应的文件的扩展名为sh

F. startupsh

E. Shutdown.sh

(2)webapps

1)每个目录就是一个项目

2)ROOT是默认的项目目录,在实际开发中,我们可以将程序打包成ROOT.war或者将目录名称修改为ROOT就可以直接发布。

3)使用10.1.1.20:8080直接访问的页面是ROOT目录下的index.jsp

4)在这个目录下可以部署一些静态资源,可以使用浏览器查看,也可以使用下载

5)用可以在该目录下创建新的文件夹作为项目发布

6)要发布项目有两个选项

 A. 将项目移动该目录下

 B. 在conf/server.xml修改资源文件的位置

 C. nginx 默认的路径/usr/local/nginx/html,也可以在server中配置其他的绝对路径,不必须是在内部的html目录中

(3)work

1)将jsp还原成java和class文件

2)保存的路径

/usr/local/tomcat/work/Catalina/localhost/myweb/org/apache/jsp/xxx.java

3)自动将jsp解析为javav文件,不需要重启服务器

(4)logs

1)日志文档

2)catalina.log

3)localhost.log

4)都有相应日期

(5)conf

[root@dynamic001 conf]# ls -l总用量 232drwxr-x--- 3 root root 23 8月 1 14:11 Catalina-rw------- 1 root root 12926 7月 8 05:02catalina.policy-rw------- 1 root root 7693 7月 8 05:02catalina.properties-rw------- 1 root root 1411 7月 8 05:02 context.xml-rw------- 1 root root 1149 7月 8 05:02 jaspicproviders.xml-rw------- 1 root root 2313 7月 8 05:02 jaspicproviders.xsd-rw------- 1 root root 4144 7月 8 05:02logging.properties####################################################333-rw------- 1 root root 7126 7月 8 05:02 server.xml######################################################-rw------- 1 root root 2756 7月 8 05:02 tomcatusers.xml-rw------- 1 root root 2558 7月 8 05:02 tomcatusers.xsd#####################################################-rw------- 1 root root 172780 7月 8 05:02 web.xml######################################################33

(6)lib

(1)tomcat运行为项目提供的依赖文件

(2)要访问没有数据,访问数据库的包

五、数据库

1、关系型数据库

(1)oracle

(2)mysql

1)安装和配置

2)sql语句

3)优化

4)备份与安全

5)集群

A.主从

B. 一主多从

C. 增删改主机

D. 从服务负责mysql查询

(3)sql-server

2、非关系型数据库

(1)redis

(2)cached

(3)mongodb

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

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

相关文章

【云原生】数据库忘记密码怎么办?

相信很多人都会遇到在虚拟机中忘记数据库密码的情况,想必大家都很苦恼,所以今天给大家来讲讲数据库忘记密码了如何修改密码再登录数据库!!! 1、关闭数据库服务 systemctl stop mariadb 2、执行MySQL 服务器在启动时跳…

ModuleNotFoundError: No module named ‘tqdm‘

报错信息: tqdm是一个快速、可扩展的Python进度条库,用于展示迭代器的长循环执行进度。 解决:通过以下命令安装 使用conda命令安装 conda install tqdm使用pip安装: pip install tqdm

【JVM】垃圾回收机制、算法和垃圾回收器

什么是垃圾回收机制 为了让程序员更加专注于代码的实现,而不用过多的考虑内存释放的问题,所以在Java语言中,有了自动的垃圾回收机制,也是我们常常提及的GC(Garbage Collection) 有了这个垃圾回收机制之后,程序员只需…

Spring学习笔记1

今天内容:配置maven 搭建了springboot项目 约定大于配置(它默认的框架优先级比配置的要高,基本全都用它所默认的框架只有特殊需求的时候才会修改一小部分。) IOC Spring IOC 管理项目中java bean的生命周期 在项目运行阶段,…

操作系统与进程简单介绍

操作系统与进程 操作系统进程 操作系统 上一篇博客中介绍了操作系统到底层硬件它们之间的一个关系,那么还是这张图 操作系统到用户它们之间的关系又是如何的呢? 又回到了最根本的问题上:为什么要有操作系统呢? 1、向下管理好软…

敦煌文化主题页面 HTML,CSS,Javascript 源码分享

使用技术:HTML,CSS,JavaScript 项目亮点:加入了大量的CSS动画效果,以及JS交互效果,水平适合初学者以及大学生,包含登录注册页 需要的可以dd, 绿泡泡:ColdDayOne

为面试准备的一些内容

开发中使用了什么技术? mvvm、compose、livedata、单例模式、工厂模式、弱引用、线程池、Handler。 对于项目一开始我们打算使用aosp原生的管控方式,如UsageStatManager获取每个app的使用时长,和使用PackageManager的setPackagesSuspended方…

一文弄清Java的四大引用及其两大传递

开场白 Hello大家好呀,我是CodeCodeBond✊最近在复习很多很多的基础知识,有了很多新的感悟~ 话不多说,直接发车✈ 四大引用 问题切入点 在学习 Thread线程利用ThreadLocalMap实现线程的本地内存(变量副本)的时候&…

mac配置git的sshkey

在MAC中配置Git的SSH Key: 1.打开终端 2.生成SSH密钥,输入以下命令: ssh-keygen -t rsa -b 4096 -C “你自己的账号电子邮件地址” 按回车键后,系统会提示你输入文件保存路径,默认为~/.ssh/id_rsa直接按回车键使用默…

Mybatis实战:#{} 和 ${}的使用区别和数据库连接池

一.#{} 和 ${} #{} 和 ${} 在MyBatis框架中都是用于SQL语句中参数替换的标记,但它们在使用方式和处理参数值上存在一些显著的区别。 #{}的作用: #{} 是MyBatis中用于预编译SQL语句的参数占位符。它会将参数值放入一个预编译的PreparedStatement中&am…

Java语言程序设计——篇十一(2)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…

MySQL(8.0)数据库安装和初始化以及管理

1.MySQL下载安装和初始化 1.下载安装包 下载地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2.解压…

数据同步策略概览

数据同步在业务开发中比较普遍,例如 订阅MySQL的binlog将数据同步至异构数据库。数据同步方案需要考虑一下几点: 数据实时性要求数据量级是否有数据转换逻辑 可分为两种模式 发布订阅模式:分为订阅数据库log还是订阅应用层发的消息点对点模…

问界M7是不是换壳东风ix7? 这下有答案了

文 | AUTO芯 作者 | 谦行 终于真相大白了 黑子们出来挨打啊 问界M7是换壳的东风ix7? 你们没想到,余大嘴会亲自出来正面回应吧 瞧瞧黑子当时乐的 问界你可以啊!靠改名字造车呢? 还有更过分的,说M7是东风小康ix7…

【网络】网络入门(第一篇)

网络入门可以从多个方面开始,以下是一个基本的网络入门指南,涵盖了网络的基本概念、网络类型、网络协议、网络拓扑、网络设备以及网络地址等方面。 一、网络基本概念 计算机网络:将多个计算机系统和设备连接在一起,以实现资源共…

CANoe系统变量模块里定义的结构体类型和变量从CAPL代码角度理解

CAPL里声明一个结构体类型: variables {struct DoIPMessage{byte version;byte inVersion;word type;dword length;byte payload[1500];};struct DoIPMessage doipMessage; }声明一个结构体类型DoIPMessage,定义了一个此结构体…

【数据结构】哈希表(散列表)

目录 1、unordered系列关联式容器 2、哈希概念 3、哈希函数 3.1 直接定址法 3.2 除留余数法 4、哈希冲突 4.1 闭散列(开放定址法) 4.1.1 线性探测 4.1.2 二次探测 4.1.3 线性探测代码实现 插入 搜索 删除 对于不可以取模的类型 4.2 开散列(哈希桶/拉链法) 插入…

【pyhton】Python中zip用法详细解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

在WordPress上启用reCAPTCHA的指南

随着网络安全问题的日益严重,网站管理员必须采取措施保护自己的网站免受恶意攻击。对于WordPress用户来说,可以通过启用谷歌的reCAPTCHA功能来增强网站的安全性。本文将介绍两种在WordPress上启用reCAPTCHA的方法:使用插件和手动添加代码。 一…

白盒测试基础与实践:Python示例及流程图设计

文章目录 前言一、白盒测试是什么?主要特点常用方法优点缺点 二、白盒测试常用技术语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖 三、程序流程图设计四、测试用例设计1. 基本路径法2. 语句覆盖3. 判断覆盖4. 条件覆盖5. 判断/条件覆盖6. 条件组合覆盖…