当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【代码随想录_Day32】 62.不同路径 63. 不同路径 II
  • Python习题 102:计算两个日期之间的天数
  • 物联网协议篇(1):modbus tcp和modbusRTU的区别是什么?
  • 改进:利用哈希表加密密码管理系统中的密码,改进密码管理系统
  • 软件技术(游戏软件开发方向)实训室解决方案
  • SQLite库笔记:命令行shell
  • JavaScript基础——JavaScript调用的三种方式
  • 在Windows系统上生成SSH秘钥
  • frp的配置参考
  • Vue前端的安全
  • 无人机环保行业解决方案-应急环境污染处理
  • 简站WordPress主题 专业的WordPress建站服务商
  • 第十九次(安装nginx代理tomcat)
  • RabbitMQ发送者重连、发送者确认
  • 用于自动驾驶的基于立体视觉的语义 3D 对象和自我运动跟踪
  • [deviceone开发]-do_Webview的基本示例
  • [数据结构]链表的实现在PHP中
  • CSS魔法堂:Absolute Positioning就这个样
  • ECMAScript6(0):ES6简明参考手册
  • gops —— Go 程序诊断分析工具
  • HTTP--网络协议分层,http历史(二)
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js算法-归并排序(merge_sort)
  • Laravel Telescope:优雅的应用调试工具
  • magento 货币换算
  • nfs客户端进程变D,延伸linux的lock
  • PAT A1120
  • Ruby 2.x 源代码分析:扩展 概述
  • Selenium实战教程系列(二)---元素定位
  • Swift 中的尾递归和蹦床
  • Webpack 4 学习01(基础配置)
  • 前端存储 - localStorage
  • Mac 上flink的安装与启动
  • ​520就是要宠粉,你的心头书我买单
  • ​configparser --- 配置文件解析器​
  • ​zookeeper集群配置与启动
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (70min)字节暑假实习二面(已挂)
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (待修改)PyG安装步骤
  • (二)c52学习之旅-简单了解单片机
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (黑马点评)二、短信登录功能实现
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转)我也是一只IT小小鸟
  • (转)重识new
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core使用NPOI导出复杂,美观的Excel详解