nginx详细配置负载均衡全过程以及宕机情况处理

news2024/10/7 20:34:06

一、准备

1.下载安装nginx服务器(win10/Linux同样适用)
在这里插入图片描述

2.两个以上服务的服务地址

二、详细步骤以及宕机情况处理

(1)编辑 nginx.conf 配置文件,该文件在conf文件夹下面。

轮询:

	upstream my_server {
		server 192.168.0.101:8080 weight=1;
		server 192.168.0.168:8088 weight=1;
		server 192.168.0.128:8080 weight=1;
	}
    server {
        listen       7777;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://my_server;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_connect_timeout       1;
			proxy_read_timeout          1;
			proxy_send_timeout          1;
            #root   html;
            #index  index.html index.htm;
        }

加权轮询:

upstream my_server {
		server 192.168.0.101:8080 weight=5;
		server 192.168.0.168:8088 weight=4;
		server 192.168.0.128:8080 weight=1;
	}
    server {
        listen       7777;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://my_server;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_connect_timeout       1;
			proxy_read_timeout          1;
			proxy_send_timeout          1;
            #root   html;
            #index  index.html index.htm;
        }

IP Hash:

upstream my_server {
		server 192.168.0.101:8080;
		server 192.168.0.168:8088;
		server 192.168.0.128:8080;
		ip_hash;
	}
    server {
        listen       7777;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://my_server;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_connect_timeout       1;
			proxy_read_timeout          1;
			proxy_send_timeout          1;
            #root   html;
            #index  index.html index.htm;
        }

配置完成后,必须重启nginx才生效。

(2)宕机情况

举例:三台服务,出现1-2台宕机无法访问的情况,如果不进行一下配置,在请求过程中,可能会造成请求时间变长

proxy_connect_timeout       1;
proxy_read_timeout          1;
proxy_send_timeout          1;

proxy_connect_timeout这个参数是连接的超时时间。我设置成1,表示是1秒后超时会连接到另外一台服务器。

三、解释

1、ip_hash
每个请求按访问IP的hash结果进行分配,这样每个访客就可以固定访问一个后端服务,一定程度上可以解决session问题;它会将主机的 $ip 哈希映射到一个随机的固定值,然后对 3 取模得到响应的端口序号;

2、weight
weight代表权重,默认为1,权重越高,被分配的客户端请求就会越多

3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的将会被优先分配

upstream my_server {
        server 192.168.0.101:8080;
		server 192.168.0.168:8088;
		server 192.168.0.128:8080;
        fair;
}

4、url_hash
按访问URL的hash结果分配。这样相同的url会被分配到同一个节点,主要为了提高缓存命中率。比如,为了提高访问性能,服务端有大量数据或者资源文件需要被缓存。使用这种策略,可以节省缓存空间,提高缓存命中率

upstream my_server {
        server 192.168.0.101:8080;
		server 192.168.0.168:8088;
		server 192.168.0.128:8080;
        hash &request_uri;
}

5、least_conn
按节点连接数分配,把请求优先分配给连接数少的节点。该策略主要为了解决,各个节点请求处理时间长短不一造成某些节点超负荷的情况。

upstream my_server {
        server 192.168.0.101:8080;
		server 192.168.0.168:8088;
		server 192.168.0.128:8080;
        least_conn;
}

大家根据自身情况选择!

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

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

相关文章

【物理应用】超声场可视化仿真模拟【含GUI Matlab源码 1494期】

⛄一、简介(附论文) 通过对超声场理论的数学物理方法计算,分别对圆型和矩型换能器的声轴线上声压分布、轴方向横截面的声压的分布及声场的指向性的表达式作出推导和演算,并得出结论;以及研究脉冲波声场分布特性&#…

计算机组成大题分析(五)

常见x86汇编指令解释 例题:已知 f(n)n! nX(n-1)XX2X1,计算 f(n)的 C 语言函数 f(n) 的源程序(圈住的地方)及其在 32 位计算机 M 上的部分机器级代码如下: 其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令&am…

止损的意义是什么?我们为何要止损这个操作?

止损的意义是什么?我们为何要止损这个操作?我想很多人并没有深入思考这个问题,我猜测绝大数人都会说为了风险控制,无条件执行,割断亏损让利润奔跑,这类的话,其实不然。 我觉得一个操作如果内心…

什么是云计算中的多租户?

在云计算中,多租户意味着一个云供应商的多个客户使用相同的计算资源。即使他们共享资源,云客户也不知道彼此,他们的数据是分开的。多租户是云计算的重要组成部分,没有它,云服务将远不实用。 多租户的经典定义是为多个用…

12月8日(第八天)

DOCKER 参考文章: 十分钟学会用docker部署微服务 Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。(开始时觉得docker麻烦,我部署java应用&a…

Python+Requests实现接口自动化

一般对于自动化的理解,有两种方式的自动化。 第一,不需要写代码,完全由工具实现,这种方式的工具一般是公司自己研发的,方便黑盒测试人员使用。这种工具的特点是学习成本低,方便使用,但是通用性…

JSP SSH共享单车租赁系统myeclipse开发oracle数据库MVC模式java编程计算机网页设计

一、源码特点 JSP SSH共享单车租赁系统是一套完善的web设计系统(系统采用ssh框架进行设计开发MVC模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要 采用B/S模式开发。开发环境为TO…

亚马逊云科技re:Invent:Serverless成技术新常态

2019年底,亚马逊云科技发布了Amazon Lambda的“预置并发(Provisioned Concurrency)”功能,它允许亚马逊云科技无服务器计算用户使其函数保持“已初始化并准备好在两位数毫秒内响应”的状态,这意味着“冷启动”问题成为…

xss-labs靶场练习部分记录

目录 靶场环境 测试使用 evel3 evel5 evel6 evel7 evel8 evel9 evel10 evel11 evel12 evel13 evel14 靶场环境 browser&#xff1a;firefox&#xff1b;plugin:Hackbar,tools:burp 注&#xff1a;常见payload在评论区 测试使用 " <> scRiPt oNeEro…

MySQL 的日志(undo log、redo log、binlog)

我们在MYSQL执行过程文章中知道一条SQL语句执行流程是怎么样的&#xff0c;但SQL语句是怎么入库的呢&#xff1f;如下图&#xff1a; SQL语句入库过程在图中涉及三个日志&#xff1a; undo log&#xff08;回滚日志&#xff09;、redo log&#xff08;重做日志&#xff09; 、b…

TI RM57 如何配置RTI作为定时器使用

引言 最近公司要对新项目的算法进行评估&#xff0c;这就需要拿到RM57浮点运算能力数据&#xff0c;测量运算速度就要用到高精度定时器&#xff0c;通过查看芯片手册发现RTI可以满足这个需求&#xff0c;本文对RTI的配置和使用做一个详细的记录&#xff0c;方便以后翻看。 ui…

Python的Socket编程

Python的Socket编程一、Socket简介二、Socket基本参数和函数介绍1. socket参数2.socket相关函数三、Python编写socket的步骤1.python编写server的步骤2.python编写client的步骤四、python socket变成实操1.server.py2.client.py3.socket更多功能五、案例1.TCP案例一&#xff1a…

推特如何解除敏感内容限制

推特如何解除敏感内容的限制&#xff0c;这里为大家分别介绍苹果、安卓、网页版的推特怎么看敏感内容&#xff0c;有需要的朋友可以看一下。 一、苹果安卓手机解除敏感内容方法&#xff08;对应中英文版&#xff09; 1.打开手机推特app&#xff0c;点击左上角的【三横】进入个…

Navicat for MySQL —— 图形化工具使用

Navicat for MySQL 下载链接&#xff1a;点击跳转 提取码&#xff1a;520H 在之前的篇目当中讲到数据库的图形化工具 —— SQLyog的使用&#xff0c;那么本篇目讲的是关于另外一款图形化工具的使用 —— Navicat for MySQL &#xff1b;下面先来安装Navicat for MySQL: Navic…

Linux权限(下)

Linux权限下file指令目录的权限x权限r权限w权限文件的默认权限umask码修改umask码粘滞位背景谁能删除设有粘滞位的目录下的文件&#xff1f;设置粘滞位的注意事项file指令 在此之前我们先了解一个指令&#xff0c;这个指令可以让我们更详细的了解文件的具体类型&#xff0c;虽…

离散数学与组合数学-01

文章目录1. 离散数学与组合数学大纲要求概述1.1 离散数学概述1.2 组合数学概述1.3. 离散数学前言第1章 数理逻辑1.1 命题与联结词1. 命题2.联结词2.集合论3.代数系统4.图论本博客内容为参考B站视频做的笔记 大家多学习&#xff0c;努力考&#x1f4af;&#x1f4af;&#x1f4a…

行业洞察 | 当数据燃尽,AI大模型出路几何?

近期&#xff0c; 自然语言处理NLP与图像方面的SOTA的模型基本都是基于大数据和大模型预训练pretrain的。当我们翱翔在搭积木垒大模型的时候&#xff0c;你可曾想过&#xff0c;也许我们垒的大模型&#xff0c;数据压根就无法完全训练好&#xff0c;换句话说也许你垒的大模型参…

BIO和NIO

前言 这段时间自己在看一些Java中BIO和NIO之类的东西&#xff0c;看了很多博客&#xff0c;发现各种关于NIO的概念说的天花乱坠头头是道&#xff0c;可以说是非常的完整&#xff0c;但是整个看下来之后&#xff0c;自己对NIO还是一知半解的状态&#xff0c;所以这篇文章不会提…

Java ssm框架 mysql实现的酒店管理系统源码+运行教程+文档

今天给大家演示一下由ssmmysql实现的一款酒店管理系统&#xff0c;教大家怎么配置运行起来&#xff0c;以及在运行过程中遇到一些小问题的解决方法。该系统实现了酒店客房预订管理的基本功能&#xff0c;还增加了图表显示统计结果的功能&#xff0c;对于Java初学者及学生来说非…

自动化测试平台(二):开发用户认证接口

一、前言 对于一个系统来讲&#xff0c;用户模块是非常基本且重要的。搭建的测试平台也需要对用户、用户权限等进行管理。下面为你讲解如何通过DRF来快速的做一个用户登录的验证接口。 二、验证登录讲解 1&#xff09;创建用户 进入django的项目目录&#xff0c;执行下面的命…