基于CentOS 7 配置nginx负载均衡

news2024/12/28 20:20:52

搭建负载均衡服务的需求如下:

1 ) 把单台计算机无法承受的大规模并发访问或数据流量分担到多台节点设备上,分别进行处理, 减少用户等待响应的时间, 提升用户体验。
2 ) 单个重负载的运算分担到多台节点设备上做并行处理, 每个节点设备处理结束后, 将结果汇总,返回给用户,系统处理能力得到大幅度提高。
3 ) 7 x 24 小时的服务保证, 任意一个或多个有限后面节点设备宕机, 不能影响业务。 在负载均衡集群中, 同组集群的所有计算机节点都应该提供相同的服务。 集群负载均衡器会截获所有对该服务的入站请求。 然后将这些请求尽可能地平均地分配在所有集群节点上。

实验环境
HOSTNAMEIP说明
master192.168.19.132Nginx主负载均衡器
node1192.168.19.133Web1服务器
node3192.168.19.135Web2服务器

系统准备:CentOS Linux 7   x86_64
软件准备:nginx-1.22.0-1.el7.ngx.x86_64.rpm

                ​​​​​​​        ​​​​​​​   1、安装Nginx

2、添加 https 代理模块

3、定义Web服务器池

4、配置用于测试的Web服务

5、配置用于测试的Web服务

6、配置hosts解析

7、重新启动服务测试

1、安装Nginx

以下操作在3台服务器上执行

yum install nginx-1.22.0-1.el7.ngx.x86_64.rpm

2、添加 https 代理模块

这里需要重新编译 nginx,需要查看当前 nginx 的版本和编译选项,然后去官网下载同版本的 nginx 源 码进行重新编译

/usr/sbin/nginx -V

tar -xf c.tar.gz -C /usr/local/

下载模块 ngx_http_proxy_connect_module

git clone https://github.com/chobits/ngx_http_proxy_connect_module

打补丁,对 nginx 源码修改,这一步很重要,不然后面的 make 过不去

cd /usr/local/nginx-1.22.0/

patch -p 1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch

在原有配置后追加模块,make 后注意不要 install

cd /usr/local/nginx-1.22.0/

        *安装依赖  yum install -y gcc gcc-c++ zlib_devel openssl-devel pcre-devel

./configure --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=/root/ngx_http_proxy_connect_module/ make

出现如下结果,安装成功

3、定义Web服务器池

以下操作在lb01

upstream www_server_pools{
        server 192.168.19.133:80 weight=1;
        server 192.168.19.135:80 weight=1;
        }
server {
    listen       80;
    server_name  www.xixi.com;
    location / {
        proxy_pass http://www_server_pools;
    }
}

4、配置用于测试的Web服务

以下操作在两台web服务器

cd /etc/nginx/conf.d/

mv default.conf{,.bak}

cat vhost.conf
server {
    listen       80;
    server_name  bbs.yunjisuan.com;

    location / {
        root   /usr/share/nginx/html/bbs;
        index  index.html index.htm;
    }

        access_log /usr/share/nginx/html/bbs/logs/access_bbs.log main;
    }
server {
    listen       80;
    server_name  www.yunjisuan.com;

    location / {
        root   /usr/share/nginx/html/www;
        index  index.html index.htm;
    }

        access_log /usr/share/nginx/html/www/logs/access_www.log main;
    }

5、配置用于测试的Web服务

以下操作在两台web服务器

mkdir -p /usr/share/nginx/html/{www,bbs}/logs

echo "`hostname -I `www" > /usr/share/nginx/html/www/index.html

echo "`hostname -I `bbs" > /usr/share/nginx/html/bbs/index.html

6、配置hosts解析

[root@master ~]# tail -1 /etc/hosts

192.168.19.132 www.xixi.com

7、重新启动服务测试

[root@master ~]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@master ~]# systemctl restart nginx

[root@master ~]# for ((i=1;i<=4;i++)); do curl http://www.yunjisuan.com; done   

#正确显示结果

192.168.19.133 bbs

192.168.19.135 bbs

192.168.19.133 bbs

192.168.19.135 bbs

但是我显示如下,192.168.19.135的服务显示不出来??!!! 

从上面的测试结果可以看出来。两个Web节点按照1:1的比例被访问。 下面宕掉任意一个Web节点,看看测试结果如何,测试如下:

[root@node2 ~]# systemctl stop nginx

[root@master~]# for ((i=1;i<=4;i++)); do curl http://www.yunjisuan.com; done #正确显示结果 192.168.19.133 bbs

192.168.19.135 bbs

192.168.19.133 bbs

192.168.19.135 bbs

#192.168.19.135服务器显示依旧有问题

节点恢复正常后,再次测试:

[root@node2 ~]# systemctl start nginx

[root@master ~]# for ((i=1;i<=4;i++)); do curl http://www.yunjisuan.com; done #正确显示结果

192.168.19.133 bbs

192.168.19.135 bbs

192.168.19.133 bbs

192.168.19.135 bbs

#192.168.19.135服务器显示依旧有问题

实现 Nginx 负载均衡的组件说明

ngx_http_proxy_module proxy 代理模块,用于把请求后拋给服务器节点或 upstream 服务器池
ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检査

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

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

相关文章

基于k8s job设计与实现CI/CD系统

方案一&#xff1a;Jenkinsk8sCICD 方案二&#xff1a;kanikok8s jobCICD CICD 基于K8s Job设计流水线 CI方案 工具镜像 云原生镜像打包工具 kaniko的使用 与Jenkins对比 可用性与易用性

深入篇【C++】基于面向对象特性之<多态>总结->分析底层实现原理附代码案例

深入篇【C】基于面向对象特性之&#xff1c;多态&#xff1e;总结-&#xff1e;分析底层实现原理附代码案例 Ⅰ.多态概念理解Ⅱ.多态实现条件Ⅲ.多态实现原理①.虚表概念②.虚表继承③.虚表位置 Ⅳ.单继承和多继承关系的虚表 Ⅰ.多态概念理解 1.多态就是多种状态&#xff0c;当…

Vue电商项目--个人中心

个人中心二级路由搭建 配置路由 界面如上 我们现在要实现一种方式就是点击右侧的&#xff0c;左侧发生变化 <div class"order-right"><div class"order-content"><div class"title"><h3>我的订单</h3></di…

《贫穷的本质》阅读笔记

《贫穷的本质》阅读笔记 2023年8月11日在杭州小屋读完&#xff0c;对于穷&#xff0c;我可有太多想说的了。可以说自己活这么大以来&#xff0c;一直在摆脱贫穷&#xff0c;也将会穷尽一生去避免贫穷。作为一个穷人该如何去摆脱贫穷&#xff0c;我觉得没有一个确切的答案&#…

SQL | 使用通配符进行过滤

6-使用通配符进行过滤 6.1-LIKE操作符 前面介绍的所有操作符都是通过已知的值进行过滤&#xff0c;或者检查某个范围的值。但是如果我们想要查找产品名字中含有bag的数据&#xff0c;就不能使用前面那种过滤情况。 利用通配符&#xff0c;可以创建比较特定数据的搜索模式。 …

SpringSpringBoot常用注解

目录 一、核心注解二、Spring Bean 相关2.1 Autowired2.2 Component, Repository, Service, Controller2.3 RestController 与 Controller2.4 Configuration 与 Component2.5 Scope 三、处理常见的 HTTP 请求类型3.1 GET 请求3.2 POST 请求3.3 PUT 请求3.4 DELETE 请求3.5 PATC…

Mybatis查询

返回实体类&#xff0c;必须指定返回类型&#xff0c; resultType不能省略&#xff0c;并且数据库字段名与实体类不一致会填充NULL&#xff0c;实体类我们一般都是驼峰&#xff0c;数据库字段一般都是下划线&#xff0c;所以在查询的时候可以起别名解决,属性填充本质上调用的是…

XXLJOB 怎么用

目录 1、数据库执行sql语句&#xff0c;建立表 2、配置Admin &#xff0c;连接xxl_job数据库 3、启动admin&#xff0c;访问 http://localhost:8080/xxl-job-admin 4、需要定时任务的微服务里导入依赖 5、配置yml&#xff08;admin地址&#xff0c;执行器名字 端口&#x…

小红书店铺怎样开通?(含详细步骤)

目录 一、小红书店铺开通 二、小红书店铺的权益 三、小红书店铺的三大玩法功能 四、小红书店铺常见问题 五、开店具体步骤&#xff1a; 大家好&#xff0c;我是网媒智星&#xff0c;今天跟大家分享一下小红书店铺怎样开通的问题&#xff0c;下文总结了详细步骤&#xff0c…

ipad触控笔有必要买吗?ipad可用触控笔推荐

苹果原装的电容笔&#xff0c;和国产的平替容笔最大的区别就在于&#xff0c;平替电容笔在压感功能上只具有倾斜的压感&#xff0c;而并没有跟苹果电容笔同样的重力压感&#xff0c;苹果电容笔同时具有倾斜压感与重力压感。但是&#xff0c;如果你不经常使用电容笔来绘画的话&a…

品牌渠道控价常见问题有哪些

不管是哪个品牌在做控价时&#xff0c;会遇到的问题都是相通的&#xff0c;如果筛选低价、窜货链接&#xff0c;如何去治理这些链接&#xff0c;使其下架&#xff0c;或者是改价。也会有品牌需要针对渠道中的乱价问题进行提前预警或者规避&#xff0c;这些可以通过分析电商数据…

访问学者申请简历写作指南

作为许多追求学术进步的人士所希望的&#xff0c;成为一名访问学者是一个极具吸引力的机会。无论是为了深化学术研究、拓展国际视野&#xff0c;还是与优秀的学者们互动交流&#xff0c;访问学者的身份都能为您带来丰富的经验。而在申请成为一名访问学者时&#xff0c;一份精心…

版本控制工具——git

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理&#xff0c;是软件配置管理的核心思想之一。 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变&#xff0c;文件的…

利用简单的算法解决逻辑推理问题(推测名次/推理谁说谎)

该算法很简单&#xff0c;以至于我们只需要三部分就可以完成。以这一题为例&#xff1a; 我们创建一个数组arr[6] { 1 } arr[1]到arr[5]分别对应A B C E&#xff0c;数组的值对应的是他们的比赛名次。其中arr[0]是用来立个flag的(也就是说用来做标记)。 接下来我们只需要写两…

轻量的工作流引擎:告别低效,创造新高!

伴随着日益激烈的市场竞争&#xff0c;作为新时代的企业&#xff0c;如何在众多同质化竞争中脱颖而出&#xff0c;占有更多的市场份额&#xff0c;实现更大发展&#xff1f;此时此刻就需要拥有不同寻常的头脑&#xff0c;寻找不平常的路径&#xff0c;轻量的工作流引擎是低代码…

cron中文翻译工具类

实现效果 /*** cron转换中文工具类** author lixuan*/ public class CronUtil {private static final Logger LOGGER LoggerFactory.getLogger(CronUtil.class);/*** cron中文表达式*/private static final List<ValueLabelPair> HOUR_LIST generateValueLabelPairs(…

使用 Packet Tracer 查看协议数据单元

练习 2.6.2&#xff1a;使用 Packet Tracer 查看协议数据单元 地址表 本练习不包括地址表。 拓扑图 学习目标 捕获从 PC 命令提示符发出的 ping运行模拟并捕获通信研究捕获的通信从 PC 使用 URL 捕获 Web 请求运行模拟并捕获通信研究捕获的通信 简介&#xff1a; Wiresha…

Dynamics 365 实体配置各属性介绍

在主界面中,我们点击设置图标->高级设置->解决方案,即可跳转到解决方案配置页面。 解决方案的存在有两方面价值,一方面是方便我们对系统进行定制,比如新建实体。另一方面则是为了方便我们在不同的环境之间复制修改的内容,也即发布。 解决方案包配置 在解决方案包…

DERT:End-to-End Object Detection with Transformers

文章目录 摘要1、简介2、相关工作2.1、集合预测2.2、Transformer与并行解码2.3、目标检测 3、DETR模型3.1、目标检测集合预测损失3.2、DETR架构 4、实验4.1、与Faster R-CNN的对比4.2、消融4.3、分析4.4、用于全景分割的DETR 5、结论附录 AA.1、初步:多头注意层A.2、损失A.3、详…

广州华锐互动:电力VR安全体验让学员沉浸式感受安全危害

随着科技的不断发展&#xff0c;虚拟现实(VR)技术在电力安全体验中发挥着越来越重要的作用。VR技术可以提供一种沉浸式的体验&#xff0c;使学员更好地理解和掌握电气安全知识&#xff0c;从而减少意外事故的发生。 首先&#xff0c;VR技术可以模拟各种电气事故场景&#xff0…