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

介绍

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

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

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

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

本篇文章是小编记录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.hqwc.cn/news/3629.html

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

相关文章

【博客679】LVS NAT模式与FULLNAT模式原理与配置差别

LVS NAT模式与FULLNAT模式原理与配置差别 注意: LVS NAT模式是LVS原生的一种工作方式,而FULLNAT是在NAT模式下通过配置SNAT来 实现FULLNAT的,而且配合SNAT这部分是靠我们自己来实现的 1、LVS NAT模式原理与特点 NAT模式的数据包请求流程&…

Atlas 200I DK A2开发者套件通过路由器联网(360安全路由-V2)

一、参考资料 Windows系统 通过直连路由器连接外部网络 二、准备工作 准备micro SD存储卡,即TF卡,建议128GB以上;准备micro SD读卡器;准备普通网线一根;准备一个路由器, 360安全路由-V2路由器。 三、关键…

【MOOC 作业】第5章 链接层

不是标答也不是参考答案 仅从个人理解出发去做题 1、(20分) 在某网络中标识为 A 到 E 的 5 个结点以星形与一台交换机连接,考虑在该网络环境中某个正在学习的交换机的运行情况。假定:该交换机表初始为空。B 向 E 发送一个帧,此时交换机将该数…

多服务器云探针源码(服务器云监控)

全球服务器分布世界地图 服务器(控制端) ping 连通率功能 后台编辑 添加 删除 服务器(控制端) 生成服务器(控制端)一键安装脚本 在线 SSH 多服务器批量执行命令 多服务器定制分享地址 控制游客那些服…

ROS学习篇之硬件准备(零)-thinkbook16+锐龙版 安装ubuntu20.04遇到的各种坑

文章目录 一.计算机配置二.遇到的问题及解决办法1.键盘失灵2.无法联wifi3.蓝牙搜索不到设备4.无法开热点 三.最后的感想 一.计算机配置 CPU: AMD R7 6800H (网卡,娱乐大师读出来的不对,在windos系统下,联想管家读出来网卡的型号是…

WebSocket

WebSocket WebSocket 事HTML5开始提供的一种在单个TCP连接上进行的双工通讯的协议,可以在html页面直接使用。 WebSocket使用客户端何服务器之间的数据交换变得更加简单,允许服务端主动向客户端推动数据。在WebSocketAPI中,浏览器和服务器只…

JVM类加载机制

一、类的加载过程(从磁盘到内存的过程) 1、整体过程概述 我们首先以一个类举例,一个类的加载首先是通过某个main函数启动程序时,通过类加载器把主类加载到jvm中,如: package com.gaorufeng.jvm;public c…

远程桌面发生身份验证错误,要求的函数不受支持

windows10专业版: 解决方法: 使用微软官方建议修改本地组策略: winr弹出运行窗口,输入gpedit.msc,打开本地组策略 计算机配置>管理模板>系统>凭据分配>加密Oracle修正 选择启用并选择易受攻击。 windows10家庭版&a…

如何调用百度地图API

前言 要调用百度地图API,步骤操作如下 注册并创建一个API密钥。您可以在百度地图API控制台上创建您的密钥。选择要使用的API服务。百度地图API提供了多种服务,包括地图展示、路线规划、地点搜索、实时交通等。您可以在百度地图API控制台上查看所有可用…

【Linux进程】进程状态 {进程状态的介绍,进程状态的转换,Linux中的进程状态,浅度睡眠VS深度睡眠,僵尸进程VS孤儿进程,调度器的作用}

进程状态 一、基本进程状态 1.1 进程状态介绍 创建状态:当一个进程被创建时,它处于创建状态。在这个阶段,操作系统为进程分配必要的资源(将代码和数据拷贝到内存,创建PCB结构体等),并为其分配一…

从0到1精通自动化测试,pytest自动化测试框架,配置文件pytest.ini(十三)

一、前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行 二、ini配置文件 pytest里面有些文件是非test文件pytest.ini pytest的主配置文件,可以改变pytest的默认…

Android Binder通信原理(三):service注册

源码基于:Android R 0. 前言 上一文中详细分析了servicemanger 的启动流程,我们知道 servicemanager 作为 binder 机制中的一个特殊service,利用service map管理所有service,也是所有binder 通信的入口。 本文着重分析 service …