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

news2025/4/8 2:07:50

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             localhost
 
127.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.coloradmin.cn/o/2308922.html

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

相关文章

C++之再识模板template

目录 1.非类型模板参数 2.函数/类模板的特化 3.模板的分离编译 4.总结&#xff1a;模板的优缺点 1. 代码复用性高 2. 类型安全 3. 性能优化 2. 错误信息难以理解 3. 代码膨胀 易错易忽略的语法点&#xff1a; 1. 模板声明和定义分离问题 2. 模板参数推导问题 1.非类…

【文献阅读】Collective Decision for Open Set Recognition

基本信息 文献名称&#xff1a;Collective Decision for Open Set Recognition 出版期刊&#xff1a;IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING 发表日期&#xff1a;04 March 2020 作者&#xff1a;Chuanxing Geng and Songcan Chen 摘要 在开集识别&#xff0…

力扣刷题DAY2(链表/简单)

一、回文链表 回文链表 方法一&#xff1a;双指针 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, L…

ansible自动化运维工具学习笔记

目录 ansible环境部署 控制端准备 被控制端准备 ansible批量管理主机的方式主要有两种 配置准备&#xff1a; ssh密码认证方式管理机器 密码登录&#xff0c;需要各主机密码相同 配置免密登录 ssh密钥方式批量管理主机 ansible实现批量化主机管理的模式 ansible-doc命令 comman…

网络空间安全(4)web应用程序安全要点

前言 Web应用程序安全是确保Web应用程序、服务和服务器免受网络攻击和威胁的关键环节。 一、编写安全的代码 输入验证与过滤&#xff1a;确保所有的用户输入都被正确验证和过滤&#xff0c;以防止注入攻击等安全漏洞。开发者应对URL、查询关键字、HTTP头、POST数据等进行严格的…

【word】保存重开题注/交叉引用消失,全局更新域问题

目录 一、更新域是什么二、更新域常见问题及解决方法&#xff08;一&#xff09;更新域后内容未变化&#xff08;二&#xff09;域代码显示异常&#xff08;三&#xff09;交叉引用无法更新&#xff08;四&#xff09;全选更新域出现错误 三、交叉引用与题注的关系及操作&#…

DeepSeek的无限可能

DeepSeek的无限可能 DeepSeek简介DeepSeek定义DeepSeek的发展历程DeepSeek的核心功能 如何使用DeepSeek注册与安装模型使用原则提示语的使用 人机共生 DeepSeek简介 DeepSeek定义 DeepSeek&#xff08;中文名&#xff1a;深度求索&#xff09;是一款由杭州深度求索人工智能基…

【wordpress】服务器已有LNMP环境(已运行WordPress),如何配置文档访问功能?

效果如图步骤确定文件存放目录404.html修改配置文件重启nginx服务 接下来是从win向linux云服务器上传文件使用Samba服务&#xff08;没成功&#xff09;使用xshell上传文件&#xff08;大文件上传一堆乱码&#xff09;winscp&#xff08;好用&#xff09; 效果如图 如果url不对…

Hadoop之01:HDFS分布式文件系统

HDFS分布式文件系统 1.目标 理解分布式思想学会使用HDFS的常用命令掌握如何使用java api操作HDFS能独立描述HDFS三大组件namenode、secondarynamenode、datanode的作用理解并独立描述HDFS读写流程HDFS如何解决大量小文件存储问题 2. HDFS 2.1 HDFS是什么 HDFS是Hadoop中的一…

Redis学习笔记系列(一)——Redis简介及安装

1. Redis介绍 Redis是完全开源的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key-value 数据库。 Redis与其他key-value缓存产品有以下三个特点&#xff1a; Redis支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&#xff0c;重启的时候可以再次加载进行…

【考试大纲】初级信息处理技术员考试大纲

目录 引言一、考试说明1.考试要求2.考试目标二、考试范围科目一:信息处理基础知识科目二:信息处理应用技术引言 最新的信息处理技术员考试大纲出版于 2018 年 6 月,本考试大纲基于此版本整理。 一、考试说明 1.考试要求 (1)了解信息技术的基本概念; (2)熟悉计…

LabVIEW正弦信号处理:FFT与最小二乘拟合的参数提取

问题一&#xff1a;LabVIEW能否对采集的正弦力信号进行快速傅里叶变换&#xff08;FFT&#xff09;&#xff0c;并得到幅值和相位结果&#xff1f; 答案&#xff1a; 可以。LabVIEW通过内置信号处理工具包提供完整的FFT分析功能&#xff0c;具体实现如下&#xff1a; FFT分析流…

【计算机网络入门】初学计算机网络(五)

目录 1.编码&解码、调制&解调 2.常用编码方法 2.1 不归零编码&#xff08;NRZ&#xff09; 2.2 归零编码(RZ) 2.3 反向非归零编码(NRZI) 2.4 曼彻斯特编码 2.5 差分曼彻斯特编码 3. 各种编码的特点 4.调制 5.有线传输介质 5.1 双绞线 5.2 同轴电缆 5.3 光…

YOLO在PiscTrace上检测到数据分析

在现代计算机视觉领域&#xff0c;实时视频数据的检测与分析对于安全监控、交通管理以及智能制造等领域具有重要意义。YOLO&#xff08;You Only Look Once&#xff09;作为一种高效的目标检测算法&#xff0c;能够在保持高精度的同时实现实时检测。而PiscTrace作为一款集成了O…

【漫话机器学习系列】112.逻辑回归(Logistic Regression)

逻辑回归&#xff08;Logistic Regression&#xff09;详解 1. 逻辑回归简介 逻辑回归&#xff08;Logistic Regression&#xff09;是一种广泛用于二分类任务的统计和机器学习方法&#xff0c;尽管它的名字中带有“回归”&#xff0c;但它实际上是一种分类算法。 在逻辑回归…

【计算机网络入门】初学计算机网络(六)

目录 1.回忆数据链路层作用 2. 组帧 2.1 四种组帧方法 2.1.1 字符计数法 2.1.2 字节填充法 2.1.3 零比特填充法 2.1.4 违规编码法 3. 差错控制 3.1 检错编码 3.1.1 奇偶校验码 3.1.2 CRC&#xff08;循环冗余校验&#xff09;校验码 3.2 纠错编码 3.2.1 海明校验码…

DeepSeek 与云原生后端:AI 赋能现代应用架构

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在当今快速发展的互联网时代&#xff0c;云原生&#xff08;Cloud Native&#xff09;架构已成为后端开发的主流趋势。云…

leetcode第17题求电话号码组合

原题出于leetcode第17题https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/题目如下&#xff1a; 题目稍微有点复杂&#xff0c;初看会感觉特别复杂&#xff0c;首先我们需要理清思路&#xff1a; 最后的结果是字母组合&#xff0c;因此遍历的是…

DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力

论文标题&#xff1a;DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 作者团队&#xff1a;DeepSeek-AI 发表时间&#xff1a;2025 前置知识 & 术语 模型蒸馏 语言模型蒸馏的目标是将大型教师模型的知识&#xff08;如语义理解、上…

PDF文档中表格以及形状解析

我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析&#xff08;使用pdfium库&#xff09;。 表格解析&#xff1a; 在pdfium库…