nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

news2024/11/24 14:01:42

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

    • 两台服务器:
    • 业务需求:
    • 需求实现:
    • 负载均衡方式(常用的三种):
    • 相关文章

在这里插入图片描述

两台服务器:

服务器ip应用(谁用)
172.16.10.10线上
172.16.10.20研发

业务需求:

有两台服务器,一台供于线上使用(172.16.10.10),一台供于研发使用(172.16.10.20)

如果线上的服务器挂了,需要将所有请求转移到研发的机器上,以确保线上服务正常使用;

正常时间还是线上使用线上的服务器,研发用研发的服务器;只有在线上服务器挂了的时候才会使用备用的研发服务器;

需求实现:

使用nginx负载均衡来实现;ip_hash方式

在nginx服务器配置中添加负载:(设置负载均衡时同台服务器不同端口也可以,不同服务器,同端口也可以)

    upstream front_server{  #定义一个服务配置front_server
            ip_hash; #表示配置一个用户固定访问一台设备
            server 172.16.10.10:8080 weight=1; #第一台服务机器 设置权重值1
            server 172.16.10.20:8080 weight=2; #第二台服务机器 设置权重值2
    }
    server {
        listen       8099;	#如果有一个服务是本台的那么8080肯定会被占用,这时候我们可以改一个访问端口即可;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
          #  root   html;
          #  index  index.html index.htm;
		proxy_pass http://front_server$request_uri;
		proxy_http_version 1.1;
		proxy_set_header Uparade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_set_header Host $host;
        }

配置完负载之后,报错保存退出,检测nginx配置语法是否有误;

#检测nginx配置语法是否有误,前面路径可根据自己安装的目录来写
/usr/local/nginx/sbin/nginx -t

返回这个有ok,则nginx配置没有问题;如果有报错会显示几行报错的。

在这里插入图片描述

检测没问题之后,重新启动nginx服务

#重启nginx服务,前面路径可根据自己安装的目录来写
/usr/local/nginx/sbin/nginx -s reload

#启动完成,检查是否启动(ps查看服务是否正常启动、netstat查看配置的端口是否正常启动)
ps -ef | grep nginx
netstat -anput | grep 8099

#完成之后就可以页面访问了。

配置好之后,这个只是配置了负载均衡,如果服务有后缀,那么自己在访问负载的ip:prot的时候在后面加上后缀即可。例如:172.16.10.10:8099/cs/index/

访问页面,持续监控两台服务的日志输出,测试即可;

负载均衡方式(常用的三种):

轮询:两台服务器会随机发送请求;

加权轮询:两台服务器也都会随机发送请求,但是会有一个权重值,谁的权重值高,接收的请求就会比另一个多;

ip_hash:也是会有权重值,谁的权重值越高,请求就会在最高的权重值中,只有当权重值最高的那台服务器挂了,再会去找权重值第二的服务器;(1为最高权重值)

  • 轮询:
    upstream front_server{  #定义一个服务配置front_server
            server 172.16.10.10:8080; #第一台服务机器(两台服务器随机分配请求)
            server 172.16.10.20:8080; #第二台服务机器(两台服务器随机分配请求)
    }
  • 加权轮询:
    upstream front_server{  #定义一个服务配置front_server
            server 172.16.10.10:8080 weight=5; #第一台服务机器,权重值比较高,所以大部分的请求都会在10上;
            server 172.16.10.20:8080 weight=2; #第二台服务机器,权重值比较低,所以少部分的请求会在20上;
    }
  • ip_hash
    upstream front_server{  #定义一个服务配置front_server
            ip_hash; #表示配置一个用户固定访问一台设备
            server 172.16.10.10:8080 weight=1; #第一台服务机器 设置权重值1,则优先访问10服务器。
            server 172.16.10.20:8080 weight=2; #第二台服务机器 设置权重值2,10服务器挂了则访问20服务器。
    }

相关文章

文章标题文章连接
【Linux】nginx基础篇 – 介绍及yum安装nginxhttps://liucy.blog.csdn.net/article/details/133928000
【Linux】环境下部署Nginx服务 - 二进制部署方式https://liucy.blog.csdn.net/article/details/132145067
nginx配置负载均衡–实战项目(适用于轮询、加权轮询、ip_hash)https://liucy.blog.csdn.net/article/details/133986013
nginx快速部署一个网站服务 + 多域名 + 多端口https://liucy.blog.csdn.net/article/details/133986102

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

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

相关文章

html登录注册标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <h1>登录注册</h1> <form action"第一个网页.html" method"post&quo…

LeetCode算法心得——元素和最小的山形三元组 II(预处理和简单动规)

大家好&#xff0c;我是晴天学长&#xff0c;枚举&#xff0b;简单的动态规划思想&#xff0c;和前段时间的周赛题的写法可以说一模一样&#xff0c;像这种类似3元的题&#xff0c;要控制时间复杂度的话&#xff0c;只能枚举一个变量&#xff0c;所以要前缀和或者动规等待。需要…

【Java笔试强训】Day3(OR59 字符串中找出连续最长的数字串、JZ39 数组中出现次数超过一半的数字)

OR59 字符串中找出连续最长的数字串 链接&#xff1a;OR59 字符串中找出连续最长的数字串 题目&#xff1a; 读入一个字符串str&#xff0c;输出字符串str中的连续最长的数字串 题目分析&#xff1a; 代码实现&#xff1a; package Day3;import java.util.Scanner;public…

k8s 使用ingress-nginx访问集群内部应用

k8s搭建和部署应用完成后&#xff0c;可以通过NodePort&#xff0c;Loadbalancer&#xff0c;Ingress方式将应用端口暴露到集群外部&#xff0c;提供外部访问。 缺点&#xff1a; NodePort占用端口&#xff0c;大量暴露端口非常不安全&#xff0c;并且有端口数量限制【不推荐】…

纺织ERP系统哪家的比较好?适用的纺织ERP软件有哪些

服装纺织是比较常见的行业&#xff0c;也是和我们生活关联比较密切的领域。不同的原材料有差异化的采购流程和生产工序&#xff0c;如何实时掌握库存数据和车间产能负荷&#xff0c;合理制定生产排期&#xff0c;关系到企业的生产效率和经营成本。 纺织ERP系统是针对性开发的智…

2023年中国汽车铸造模具竞争现状及行业市场规模前景分析[图]

铸造是将熔融金属填充入铸型内&#xff0c;经冷却凝固而获得所需形状和性能的零部件或毛坯的制作过程&#xff0c;铸造工艺中使用的模具被称为铸造模具&#xff0c;根据铸型的材质分为砂型铸造模具和金属型铸造模具等&#xff1b;金属型铸造模具根据压力不同可分为重力铸造模具…

【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]

阅读导航 前言一、unordered系列容器二、unordered_map1. unordered_map简介⭕函数特点 2. unordered_map接口- 构造函数- unordered_map的容量- unordered_map的迭代器- unordered_map的元素访问- unordered_map的修改操作- unordered_map的桶操作 三、unordered_set1. unorde…

自学系列之小游戏---贪吃蛇(vue3+ts+vite+element-plus+sass)(module.scss + tsx)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、逻辑设计分析二、代码实现1.TS interface2.javascript3.页面样式&#xff08;Sass&#xff09; 三、截图展示四、总结 前言 主要技术如下&#xff1a;vue3…

微信h5支付配置,商家存在未配置的参数,请联系商家解决

对于PC端来说&#xff0c;只需要开通 native支付 就可以了 但手机端h5还需要配置支付域名&#xff0c;并且域名只需要配置一级就可以了&#xff0c;比如&#xff1a;a.test.com, b.test.com, 只需要配置 test.com 就能满足所有的二级域名了, 而不需要配置a.test.com或者b.te…

nmp、yarn、yeoman、bower是什么东西?

1&#xff1a;npm&#xff08;Node Package Manager&#xff09;&#xff1a;npm 是 Node.js 的包管理器&#xff0c;用于安装、管理和共享 JavaScript 包。它是 JavaScript 生态系统中最常用的包管理工具&#xff0c;可以轻松地安装和管理项目的依赖项。 2&#xff1a;Yarn&a…

远程桌面无法复制粘贴文件

本地通过mstsc连接到远程说面后&#xff0c;无法把本地文件复制到远程桌面上或者远程桌面的文件无法复制到本地机器修改。 思路:重启rdpclip服务 1、远程说面打开任务管理器 查看到rdpclip.exe程序&#xff0c;如果存在就关闭掉&#xff0c;不存在就跳过 2、winR打开运行&am…

2023 年 12 款最佳免费 PDF 阅读器

12 大最佳免费 PDF 阅读器 PDF 阅读器是一种可以打开 PDF 文件的软件&#xff0c;PDF 文件可能是最流行的文档格式。尽管 PDF 文件已经存在超过 25 年&#xff0c;但它仍然是 Internet 上文档的主要格式。但是&#xff0c;要打开此类文档&#xff0c;您必须在计算机上下载指定…

逐秒追加带序号输入当前时间:fgets fputs sprintf fprintf

//向某文件中逐秒追加带序号输入当前时间 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> #include <unistd.h> int main(int argc, char const *argv[]) { time_t tv; // time(&tv);//法1:获取秒数 …

css flex实现同行div根据内容高度自适应且保持一致

有情况如下&#xff1a;三个div的高度是随着内容自适应的&#xff0c;但希望每列的高度都相同&#xff0c;即&#xff0c;都与最高的相同。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewp…

同为科技(TOWE)机架PDU产品在IDC数据中心机房建设中的应用

当今社会互联网发展迅速&#xff0c; 随着带宽需求的提升&#xff0c; 网络的保密性、安全性的要求就越来越迫切。PDU(Power Distribution Unit) 是 PDU具备电源分配和管理功能的电源分配管理器。PDU电源插座是多有设备运行的第一道也是最为密切的部件&#xff0c; PDU的好坏直…

VS Code里使用Debugger for Unity插件进行调试(2023最新版)

vs Code因为免费启动&#xff08;飓快&#xff09;的原因&#xff0c;已经成为事实的第一首选的IDE了 比sublime还快很多很多&#xff0c;其他特性包括但不限于&#xff1a; 最直接的github拉取&#xff0c;提交管理插件管理支持各种语言的识别代码分屏 是毫无疑问的第一编程…

跨境商城源码可以支持多店铺管理模式吗?

跨境商城源码是一种用于搭建跨境电商平台的模板或框架。它为开发者提供了一套完整的程序代码&#xff0c;可快速建立一个功能齐备的跨境商城网站。跨境商城源码通常具备商品展示、购物车、支付、订单管理等基础功能&#xff0c;并支持二次开发和定制。 什么是多店铺管理模式? …

忆联SR-IOV解决方案:助力云数据中心节能提效,向“绿”而行

随着AI时代的到来&#xff0c;云数据中心如何实现节能提效正成为热门话题。其中&#xff0c;SR-IOV技术凭借灵活度高以及可节约虚拟化业务算力等优势&#xff0c;是打造绿色低碳云数据中心的重要解决方案之一。 一、什么是SR-IOV 技术 SR-IOV 是由国际组织 PCI-SIG 组织定义的…

AQS是什么?AbstractQueuedSynchronizer之AQS原理及源码深度分析

文章目录 一、AQS概述1、什么是AQS2、技术解释3、基本原理4、AQS为什么这么重要 二、AQS数据结构1、AQS的结构2、ReentrantLock与AbstractQueuedSynchronizer3、AQS的state变量4、AQS的队列5、AQS的Node&#xff08;1&#xff09;Node的waitStatus&#xff08;2&#xff09;属性…

UWB工业现场数字化管理

资产管理数字化 器具场内外流转跟踪管理 无动力资产跟踪 大件地堆及成品固定区域盘点 大型资产移动/流动盘点 成品及返修车定位 无人值守人、车、物出入监测 资产移动盘点 安全生产数字化 危险区域人员/物资管理 叉车防碰撞及安全运行管理 行车防碰撞及安全运行管理 …