【Linux】在Ubuntu下部署nginx——nginx的负载均衡

news2024/10/7 8:23:28

介绍

这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长!

以下为小编最喜欢的两句话:

要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。

一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,我想去的地方都很远,我爱的人超完美。因此,小编想说:共勉!

本篇文章是小编记录Linux的系统学习

目录

一、负载均衡

1、什么是负载均衡?

2、常见的nginx负载均衡的方式有哪些?

二、负载均衡的实现

1、需求

2、步骤

1、配置多台tomcat应用服务器(小编是在window下一台,linux下一台)

2、在ngnix中增加配置/etc/nginx/sites-available/default(还可在nginx的根目录下的nginx.conf中配置)也可以配置两个及以上的服务如下代码:

 3、nginx负载均衡的参数:

 4、让配置生效,更新配置

 5、访问服务


一、负载均衡

1、什么是负载均衡?

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2、常见的nginx负载均衡的方式有哪些?

Nginx提供了多种负载均衡方式,以下是常见的几种方式:

1. 轮询(round-robin):默认的负载均衡策略,即将请求依次分配到不同的后端服务器上。当请求分配到最后一个后端服务器时,统计数据清零,重新从第一个后端服务器开始分配。

2. IP哈希(ip_hash):根据客户端的IP地址进行哈希计算,将同一客户端的请求分配到同一后端服务器上。这种方式可以保证同一客户端的所有请求都会被分配到同一后端服务器上,可以解决某些应用场景下的问题。

3. 最少连接(least_conn):将请求发送到当前连接数最少的后端服务器上。这种方式可以让负载均衡算法选择处理请求最快的服务器,提高系统响应速度。

4. 加权轮询(weight):根据服务器的权重进行请求分配,权重越高的服务器能够处理更多的请求。这种方式可以根据服务器的处理能力分配请求,提高整个系统的性能。

5. 加权最少连接(least_conn + weight):将最少连接方式与加权方式结合使用,基于连接数和服务器权重进行请求的分配,能够选择最快的和处理能力最强的服务器。

当然,Nginx负载均衡还可以设置一些高级选项,如:健康检查、慢启动、最大失败数等。这些高级选项可以保证负载均衡的稳定性和可靠性,提高应用系统的可用性。

总之,Nginx提供了多种负载均衡方式,包括轮询、IP哈希、最少连接、加权轮询和加权最少连接等。根据不同的应用场景和要求,选择合适的负载均衡方式和参数组合,可以实现灵活、高效、稳定的负载均衡。

二、负载均衡的实现

1、需求

nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至tomcat服务器。

eg:

nginx负载均衡服务器:IP地址1:80

tomcat1服务器:http://ip地址2:80

tomcat2服务器:http://IP地址1:8080

2、步骤


1、配置多台tomcat应用服务器(小编是在window下一台,linux下一台)


2、在ngnix中增加配置/etc/nginx/sites-available/default(还可在nginx的根目录下的nginx.conf中配置)
也可以配置两个及以上的服务如下代码:

下面的代码只是一个示例,具体可以根据自己的情况去配置

upstream tomcatserver1 {
# 第一台服务器
upstream tomcatserver1 {
    server 192.168.0.126:8080;
  server 192.168.0.126:8082;
 }
 # 第二台服务器
 upstream tomcatserver2{
    server 192.168.0.126:8082;
     #   server 192.168.3.43:8082; 
 }
 
 server {
        listen       8888;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            proxy_pass   http://tomcatserver1;             
            index  index.html index.jsp;
        }
    }
 
 server {
        listen       8888;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            proxy_pass   http://tomcatserver2;
            index  index.html index.jsp;
        }
    }


下图是小编的负载均衡配置

 

 3、nginx负载均衡的参数:

在需要使用负载的Server节点下添加

proxy_pass  http://myServer;(这里的myServer是upstream中所定义的名字)

upstream 每个设备的状态:

down 表示单前的server暂时不参与负载

weight :默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

fail_timeout:max_fails 次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

 4、让配置生效,更新配置


注意:每次更改问配置文件后,一定要核验一下语法是否正确(nginx  -t),否则重启服务报错

可用以下代码进行nginx的重启

/etx/init.d/nginx   restart 

service nginx restart

 5、访问服务


在网页通过http:ip地址/80 回车访问172.1.3.69:8080访问两次之后,再172.1.3.29:8080访问一次

以上就是小编所实践的内容,希望能够帮助到大家,感谢各位大佬的观看!!
 

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

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

相关文章

vs中的一些编码问题

1. 基本概念 文件编码格式 首先vs中编辑,保存文件实际上也是将文件内容以一定的编码格式存储。对于中文字符串 string s "一"; 按不同的编码格式保存后,通过16进制文件查看器,可以看到中文的编码是能对应上的。 开放高级保存…

select和pselect的关于信号打断的实验

select和pslect的man手册 SELECT(2) Linux Programmers Manual SELECT(2)NAMEselect, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O …

【HDFS实战】HDFS联合(联邦)集群的发展史

HDFS联合集群的发展史 文章目录 HDFS联合集群的发展史HDFS原始架构方案一 HDFS Federation方案二 ViewFs方案三 HDFS Router-based Federation常用命令常用配置RPC serverConnection to the NamenodesAdmin serverHTTP ServerState StoreRoutingNamenode monitoring 版本相关is…

nestJS打印多层对象以及铺平金额类型

console.dir(ret, { depth: 3 }); 金额是Decimal类型不好显示 Logger.verbose(JSON.stringify(ret, null, 2)); 利用JSON.stringify参数格式化 null: 不对数据进行提取, 2:缩进两个空格, 效果是直接帮忙平铺金额对象

java.lang.IllegalStateException Unable to find a @SpringBootConfiguration代码报错

文章目录 一. 问题场景二. 报错原因三. 解决方案 一. 问题场景 使用idea基于springBoot的项目进行单元测试时,出现异常,如下所示: Test ignored.java.lang.IllegalStateException: Unable to find a SpringBootConfiguration, you need to …

【电源专题】案例:电池保护芯片有是否能向0V电池充电的功能的区别

本案例发生在实际的工作之中。案例是这样的,有些产品因为各种原因没有按规范将电池与设备断开,而是插入机器(存在1mA的静态功耗)中并存放在仓库里2年后发现产品无法开机使用,并且电池无法充电。更换新的电池后运行正常,所以认定为是电池的问题。 可是为什么电池无法充电呢…

学妹:怎样才能设计出优秀的测试用例?

这篇文章我们主要聊一下测试工程师最通用的也是最根本的技能,测试用例的设计能力。 测试用例 测试用例是通过使用在测试计划中确定的测试技术,对于已确定的测试条件进行逐步推敲,精炼而设计出来的重点说明如何具体操作产生何种结果的文档。…

(免费分享)基于springboot,vue高校就业系统

管理员:10086/123 学生:10087/123 企业:10070/123 辅导员:10090/123 项目描述 高校就业管理系统 学生 : 个人信息、查看企业岗位信息、简历信息管理、我的应聘 辅导员 : 学生信息管理、三方协议书审核、查看班级就业统计信息 企…

App启动流程分析(一)

一、App启动涉及到的三个进程 1、Launcher进程:负责接收用户点击屏幕的事件,它其实就是一个Activity,屏幕上的各种Icon就是这个Activity中的Button,当点击Icon时,会触发启动App的流程。 2、SystemServer进程&#xff…

新手小白学JAVA_IDEA修改编辑与控制台字体大小

很多小白在刚刚使用IDEA的时候还不是很熟练 本文主要给大家提供一些使用的小技巧,希望能帮助到你 1.改变编辑窗口字体大小 1.1 将字体大小设置为固定值 我们可以将编辑窗口的字体大小设置为固定值 1.2 动态改变字体的大小 我们还可以通过Ctrl鼠标滚轮改变编辑窗口…

微信小程序怎么制作自己的小程序

小程序制作是指通过工具或开发语言制作微信平台上的小型应用程序,具有轻量、易用、无需下载安装等优点。随着移动互联网的飞速发展,小程序已经成为了各种企业和个人展示自己、提供服务的重要手段之一。 小程序制作的好处 小程序可以提高品牌曝光度。在…

SpringBoot + 规则引擎 URule,真的太强悍了!

一、背景 前段时间,在做项目重构的时候,遇到很多地方需要做很多的条件判断。当然可以用很多的if-else判断去解决,但是当时也不清楚怎么回事,就想玩点别的。于是乎,就去调研了规则引擎。 当然,市面上有很多…

Springboot 中RESTtemplate的使用

目录 一 概述 二 应用 1.get请求 2.post请求 一 概述 RESTtemplate提供了http请求连接的功能。spring 框架提供的 RestTemplate 类可用于在应用中调用 rest 服务,它简化了与 http 服务的通信方式,统一了 RESTful 的标准,封装了 http 链接…

行业报告 | 智能教育发展蓝皮书(下)

原创 | 文 BFT机器人 核心观点 Core point 在教育数字化转型的背景下,积极探索智能技术助力教学减负增效的实践路径,对于深化教育教学改革,促进学生全面发展、健康成长具有重要现实意义。 03 智能技术助力教学设计 教学设计以解决实际的教学…

【半监督语义分割 2023 CVPR】CCVC

【半监督语义分割 2023 CVPR】CCVC 论文题目:Conflict-Based Cross-View Consistency for Semi-Supervised Semantic Segmentation 中文题目:半监督语义分割的基于冲突的交叉视图一致性 论文链接:https://arxiv.org/abs/2303.01276 论文代码&…

Visual Basic 6 25 周年

Visual Basic 6.0 是 Visual Basic“经典”的最后一个版本(VB.NET 之前的版本)。它是迄今为止 32 位 Windows 95/NT 及更高版本最流行的版本。它非常受欢迎,并且仍在许多公司中使用。它于 1998 年中发布,与 5.0 版本相比在多个方面…

mysql-数据迁移

文章目录 1. 物理迁移1. 迁移前,配置mysql的输出目录1. 查看mysql的输出目录2. 修改mysql的输出目录 2. 文件迁移 1. 物理迁移 1. 迁移前,配置mysql的输出目录 1. 查看mysql的输出目录 在安装MySQL的会限制了导入与导出的目录权限。只允许在规定的目录…

基于.net core的微信小程序接入微信支付系列之环境搭建(1)

前言:c#语言本身是一门非常优雅的语言,但是在腾讯的api文档里面并不受到待见,所以只能靠自己看文档来逐步摸索,微信支付的逻辑看起来很复杂,其主要原因在于腾讯写文档的人可能是学体育专业的,简单的逻辑非要…

android Q /R/S/T onTopResumedActivityChanged方法解析

疑问背景: 在Android Q高版本,发现经常通过events日志来看Activity生命周期的时候,经常看到如下打印: 06-27 12:02:07.091 4812 4812 I wm_on_top_resumed_gained_called: [227500858,com.android.launcher3.uioverrides.Quic…

【LeetCode】动态规划 刷题训练(五)

文章目录 剑指 Offer II 091. 粉刷房子题目解析状态转移方程完整代码 309. 最佳买卖股票时机含冷冻期题目解析状态转移方程持有股票保持卖出股票卖出股票冷冻期 完整代码 714. 买卖股票的最佳时机含手续费题目解析状态转移方程f[i]状态转移方程g[i]状态转移方程 完整代码 剑指 …