5. Nginx 负载均衡配置案例(附有详细截图说明++)

ops/2025/3/5 22:42:19/

5. Nginx 负载均衡配置案例(附有详细截图说明++)

文章目录

  • 5. Nginx 负载均衡配置案例(附有详细截图说明++)
  • 1. Nginx 负载均衡 配置实例
  • 3. 注意事项和避免的坑
  • 4. 文档: Nginx 的 upstream 配置技巧
  • 5. 最后:


1. Nginx 负载均衡 配置实例

需求说明/图解

windows 浏览器输入: http://www.rainbowseacrm.com/search/look.html

在这里插入图片描述

负载均衡配置-思路分析/图解

在这里插入图片描述

负载均衡配置规则:

  • 负载均衡就是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快。

  • Linux 下有:Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,Nginx 提供了如下几种分配方式(策略):

    1. 轮询**(默认)** :每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔 除
    2. weight(根据权重的大小,比例进行负载均衡)

    weight 代表权,重默认为 1,权重越高被分配的客户端越多。

    指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如

    upstream rsservers{
    server 192.168.12.134:8080 weight=1;
    server 192.168.12.134:8081 weight=2;
    }
    
    1. ip_hash : 每个请求按访问 IP 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。例如:
    upstream rsservers{
    ip_hash;
    server 192.168.12.134:8081;
    server 192.168.12.134:8080;
    }
    
    1. fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream rsservers{
server 192.168.12.134:8080;
server 192.168.12.134:8081;
fair;
}

 # 2. Nginx 负载均衡实现具体步骤如下
  1. 修改 C:\Windows\System32\drivers\etc\hosts 配置虚拟主机名,配置相关域名的映射

在这里插入图片描述

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost127.0.0.1 account.wondershare.com
# 配置 eureka 主机 和 ip 的映射
127.0.0.1 eureka9001.com
127.0.0.1 eureka9002.com
192.168.76.157 www.rainbowsea.com
192.168.76.159 www.rainbowseamall.com
192.168.76.160 www.rainbowseacrm.com
  1. 修改 安装目录conf\nginx.conf 配置,反向代理路径映射

这里我的 nginx.conf 路径是在 /usr/local/nginx/conf 路径下。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 upstream rsservers {36         server 192.168.76.160:8080;37         server 192.168.76.160:8081;38 39     }40 41     server {42         listen       80;43         server_name 192.168.76.160;44        #server_name  localhost;45         #charset koi8-r;46 47         #access_log  logs/host.access.log  main;48 49         location / {50             root   html;51             proxy_pass http://rsservers;52             index  index.html index.htm;53         }54 

查看 nginx.conf 是否存在配置错误:

[root@localhost nginx]# ./sbin/nginx -t
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -t

在这里插入图片描述

重启 Nginx ,加载我们修改后的配置:

[root@localhost nginx]# ./sbin/nginx -s reload
[root@localhost nginx]# ps -aux | grep nginx

在这里插入图片描述

在这里插入图片描述

  1. 在 Linux 的 Tomcat8080 创建 webapps\search\look.html

在这里插入图片描述

在这里插入图片描述

这里我先进入到 Tomcat 的 webapps 目录下,创建 look.html 文件,进行一个访问映射。

在这里插入图片描述

<h1>tomcat 8080 search.... </h1>
  1. 在 Linux 下重新安装一份 Tomcat, 并将端口修改成 8081
[root@localhost opt]# cp -r ./tomcat/ ./tomcat8081

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改 tomcat 的 conf\server.xml , 注意要修改如下位置,否则该 Tomcat 是不能正常工作。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

细节说明:不同版本的 tomcat 修改的端口还不一样, 小伙伴们灵活处理即可。

  1. 在 Linux 的 Tomcat8081 创建 webapps\search\look.html

在这里插入图片描述

在这里插入图片描述

<h1>tomcat 8081 search.... </h1>
  1. linux 防火墙打开 80 端口, 保证外网可以访问
[root@localhost product]# firewall-cmd --add-port=80/tcp --permanent # 防火墙开放 10000 端口
[root@localhost product]# firewall-cmd --reload # 重启防火墙
[root@localhost product]# firewall-cmd --list-all # 查看防火墙信息

在这里插入图片描述

  1. 启动 Linux 下两个 Tomcat
[root@localhost bin]# ./startup.sh

在这里插入图片描述

[root@localhost bin]# netstat -an | more

在这里插入图片描述

在这里插入图片描述

打开 Linux 当中的浏览器: 访问

  • http://localhost:8080/
  • http://localhost:8081/

在这里插入图片描述

在这里插入图片描述

查看启动的端口, 确保有 8080 和 8081 端口在监听(提示: 如果 tomcat 没有监听 对应端口, 说明启动失败了, 可以尝试先执行 shutdown.sh 再执行 startup.sh 解决)

在这里插入图片描述

  1. 测试是否可以在 Linux 下可以正常访问到两个页面
  • Tomcat 8080 访问/search/look.html 成功 ;http://localhost:8080/search/look.html

在这里插入图片描述

  • Tomcat 8081 访问/search/look.html 成功 ;http://localhost:8081/search/look.html

在这里插入图片描述

  1. 启动 或者 重新加载 Nginx
[root@localhost nginx]# ./sbin/nginx
[root@localhost nginx]# ps -aux | grep nginx

在这里插入图片描述

  1. windows 浏览器输入(保证浏览器不是无痕上网): http://www.rainbowseacrm.com/search/look.html

http://www.rainbowseacrm.com/search/look.html

在这里插入图片描述

3. 注意事项和避免的坑

  1. nginx.conf 的 upstream 不能带下划线, 否则会失败, 但是语法检测不到

在这里插入图片描述

带下划线,报错信息,如下:
在这里插入图片描述

  1. 如果你的浏览器是无痕上网, 负载均衡可能失效, 因为 Nginx 无法采集到相关信息, 就遇到这个情况, 改用其它浏览器即可(比如 chrome)

  2. 如果某 tomcat 没有监听对应端口说明启动失败了,可以尝试先执行,shutdown.sh再执行 startup.sh 解决

4. 文档: Nginx 的 upstream 配置技巧

基本介绍:

Nginx 是一个反向代理软件,大部分的网站都采用 Nginx 作为网站/平台的 服务器软件。Nginx 除了可以直接作为 web 服务器使用外,更多的情况是 通过反向代理将请求转发给上游服务器。

配置上游服务器可以使用 upstream 进行设置,通过 upstream 可以实现服 务的负载均衡规则,可以提高服务器的高可用性。

地址:https://zhuanlan.zhihu.com/p/409693332

  • 如果停掉 1 个 Tomcat, 会怎样?
  • 如果停掉 1 个 Tomcat, 然后又恢复,会怎样?
  • 如何给不同的服务,分配权重 weight

5. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述


http://www.ppmy.cn/ops/163428.html

相关文章

15-YOLOV8OBB损失函数详解

一、YOLO OBB支持的OBB 在Ultralytics YOLO 模型中,OBB 由YOLO OBB 格式中的四个角点表示。这样可以更准确地检测到物体,因为边界框可以旋转以更好地适应物体。其坐标在 0 和 1 之间归一化: class_index x1 y1 x2 y2 x3 y3 x4 y4 YOLO 在内部处理损失和输出是xywhr 格式,x…

Redis——缓存穿透、击穿、雪崩

缓存穿透 什么是缓存穿透 缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中&#xff0c;导致请求直接到了数据库上&#xff0c;根本没有经过缓存这一层。举个例子&#xff1a;某个黑客故意制造我们缓存中不存在的 key 发起大量请求&#xff0c;导致大量请求落到数据库…

[数据结构]二叉树详解

目录 一、二叉树概念及结构 1.1概念 1.2现实中的二叉树&#xff1a; 1.3 特殊的二叉树&#xff1a; 1.4 二叉树的存储结构 1. 顺序存储 2. 链式存储 二、二叉树的顺序结构及实现 2.1 二叉树的顺序结构 三、二叉树链式结构的实现 3.1 前置说明 3.2二叉树的遍历 3.2…

HTTP~文件 MIME 类型

MIME&#xff08;Multipurpose Internet Mail Extensions&#xff09;类型&#xff0c;即多用途互联网邮件扩展类型&#xff0c;是一种标准&#xff0c;用来表示文档、文件或字节流的性质和格式。最初是为了在电子邮件系统中支持非 ASCII 字符文本、二进制文件附件等而设计的&a…

P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用

P8651 [P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用 题目 分析代码 题目 分析 代码中巧妙的用到3重循环&#xff0c;完美的解决了输出的顺序问题【题目要求从小到大】 需要注意的是2月的值&#xff0c;在不同的年份中应该更新2月的值 还有…

CSS—背景属性与盒子模型(border、padding、margin)

目录 一.背景属性 二.盒子模型 1.边框border a. 圆角属性border-radius b. 图像属性border-image 2. 内边距padding 3. 外边距margin 3. 宽度width与高度height 一.背景属性 浏览器背景图默认是平铺效果&#xff08;复制图片直至填满设置的区域大小&#xff09; 背景…

Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 3 部分

附件下载 联系工作人员获取附件 在 OpticStudio 中使用 RCWA 工具为增强现实&#xff08;AR&#xff09;系统设置出瞳扩展器&#xff08;EPE&#xff09;的示例中&#xff0c;首先解释了 k空间中光栅的规划&#xff0c;并详细讨论了设置每个光栅的步骤。 介绍 本文是四篇文…

单片机死机跑飞的原因

单片机死机跑飞的原因 硬件问题一.电源问题二.时钟异常三.复位电路故障四.电磁干扰&#xff08;EMI&#xff09;五.外设负载过重六.温度影响 软件原因一.内存管理问题二.中断处理错误三.看门狗配置不当四.多任务冲突 记录一下导致单片机跑飞可能出现的原因。 硬件问题 一.电源…