负载均衡集群——Nginx

目录

1.Nginx反向代理实战

2.Nginx 反向代理和负载均衡实践

实验操作步骤

步骤 1 Nginx1 和 Nginx2 配置

步骤2 测试资源是否可用

步骤 3 安装和配置 Nginx 代理

步骤 4 代理服务器配置检测

步骤 5 在 Nginx1 和 Nginx2 配置虚拟主机

步骤 6 将虚拟主机添加入后端主机组中

步骤 7 IP Hash 算法实践

步骤 8 Random 算法实践

步骤 9 算法选项配置实践


1.Nginx反向代理实战

 

1 、什么是代理服务器
        代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送 给客户机。
2 、为什么要使用代理服务器
        提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。
        防火墙作用 :由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。通过代理服务器访问不能访问的目标站点
互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站
3 、反向代理 VS 正向代理
正向代理
        正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet 的连接请求,客户机必须指定代理服务器, 并将本来要直接发送到 Web 服务器上的 http 请求发送到代理服务器中。

 

反向代理
        反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet 上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

2.Nginx 反向代理和负载均衡实践

本实验将使用四台虚拟机,其中两台 Nginx 服务器和客户端与《LVS 集群》复用,充当代理服务器的 Nginx 可以新建,也可以清理《LVS 集群》中 LVS 服务器的配置后复用。

实验操作步骤

步骤 1 Nginx1 和 Nginx2 配置

[root@Nginx2 ~]# yum install nginx -y
[root@Nginx2 ~]# systemctl start nginx
[root@Nginx2 ~]# mkdir -p /data/nginx
[root@Nginx2 ~]# touch  /data/nginx/index.html
[root@Nginx1 ~]# cat /etc/nginx/conf.d/vhost.conf 
server{listen 80;server_name www.test.com;root /data/nginx;index index.html;}
[root@Nginx1 ~]# curl 192.168.186.102
hello,nginx2
[root@Nginx2 ~]# curl 192.168.186.101
hello,nginx1在 LVS 虚拟机上开启路由转发功能,具体参考命令如下:sed -i "s/ip_forward=0/ip_forward=1/g" /etc/sysctl.confsysctl -p | grep net.ipv4.ip_forwardsysctl -a | grep net.ipv4.ip_forward
配置完成后,测试是否能够正常访问 Nginx1 和 Nginx2,具体如下:
[root@LVS ~]# curl 192.168.186.101
hello,nginx1
[root@LVS ~]# curl 192.168.186.102
hello,nginx2

步骤2 测试资源是否可用

在客户端 ping 代理服务器的 10 网段地址,保证二者之间网络可达,如下图所示:

 在代理服务器上访问两台 Nginx 服务器,保证 Nginx 服务器可用,如下图所示:

步骤 3 安装和配置 Nginx 代理

[root@Cluster ~]# yum install -y nginx
在代理服务器 Nginx 子配置文件目录中创建代理和负载均衡配置文件,并在文件中添加以下配置:
[root@Cluster ~]# systemctl start nginx
[root@Cluster ~]# vim /etc/nginx/conf.d/lb.conf
upstream 192.168.186.100{server 192.168.186.101:80;server 192.168.186.102:80;
}server {listen 80;server_name localhost;location /{proxy_pass http://192.168.186.100;}
}
完成配置后,使用命令“nginx -s reload”重新加载 Nginx 服务。

步骤 4 代理服务器配置检测

在客户端访问 192.168.186.100,查看是否能够达到效果,如果配置正确,现象如下图所示:

步骤 5 在 Nginx1 和 Nginx2 配置虚拟主机

在/data/nginx/中创建 index80.html、index81.html 和 index82.html 文件,分别将使用的端口添加到内容中,
[root@Nginx1 ~]# touch /data/nginx/index80.html
[root@Nginx1 ~]# touch /data/nginx/index81.html
[root@Nginx1 ~]# touch /data/nginx/index82.html
[root@Nginx1 ~]# ls /data/nginx/
index80.html  index81.html  index82.html  
[root@Nginx1 ~]# echo "hello,192.168.186.101:80" > /data/nginx/index80.html 
[root@Nginx1 ~]# echo "hello,192.168.186.101:81" > /data/nginx/index81.html 
[root@Nginx1 ~]# echo "hello,192.168.186.101:82" > /data/nginx/index82.html
为了使后续的算法体现更加明显,在两台 Nginx 服务器中,添加虚拟主机,具体配置如下:
[root@Nginx1 ~]# vim /etc/nginx/conf.d/vhost.conf
server{listen 0.0.0.0:80;server_name localhost;root /data/nginx;index index80.html;
}
server{listen 0.0.0.0:81;root /data/nginx;server_name localhost;index index81.html;
}
server{listen 0.0.0.0:82;root /data/nginx;server_name localhost;index index82.html;
}
[root@Nginx2 ~]# vim /etc/nginx/conf.d/vhost.conf
server{listen 0.0.0.0:80;server_name localhost;root /data/nginx;index index80.html;
}
server{listen 0.0.0.0:81;root /data/nginx;server_name localhost;index index81.html;
}
server{listen 0.0.0.0:82;root /data/nginx;server_name localhost;index index82.html;
}
[root@Nginx2 ~]# touch /data/nginx/index80.html
[root@Nginx2 ~]# touch /data/nginx/index81.html
[root@Nginx2 ~]# touch /data/nginx/index82.html
[root@Nginx2 ~]# echo "hello,192.168.186.102:80" > /data/nginx/index80.html
[root@Nginx2 ~]# echo "hello,192.168.186.102:81" > /data/nginx/index81.html
[root@Nginx2 ~]# echo "hello,192.168.186.102:82" > /data/nginx/index82.html

步骤 6 将虚拟主机添加入后端主机组中

[root@Cluster ~]# vim /etc/nginx/conf.d/lb.conf
upstream 192.168.186.100{
server 192.168.186.101:80;
server 192.168.186.101:81;
server 192.168.186.101:82;
server 192.168.186.102:80;
server 192.168.186.102:81;
server 192.168.186.102:82;
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://192.168.186.100;
}
}
配置完成后重新加载 Nginx 配置文件

步骤 7 IP Hash 算法实践

将代理服务器中相关配置文件中添加配置,修改算法为 IP Hash,具体如下:

[root@Cluster ~]# vim /etc/nginx/conf.d/lb.conf
upstream 192.168.186.100{ip_hash;server 192.168.186.101:80;server 192.168.186.101:81;server 192.168.186.101:82;server 192.168.186.102:80;server 192.168.186.102:81;server 192.168.186.102:82;}server {listen 80;server_name localhost;location /{proxy_pass http://192.168.186.100;}
}

 

步骤 8 Random 算法实践

将负载均衡配置修改为 Random 算法,具体如下:
重新加载 Nginx 配置后,进行测试,具体现象为:

步骤 9 算法选项配置实践

修改代理主机配置文件,将 Nginx2 的全部虚拟主机设置为 backup,同时将 Nginx1 上的虚拟主机设置一定的权重,具体配置如下图所示:

重新加载 Nginx 配置后,然后在客户端进行测试,具体现象如下:

手动将 Nginx1 上的服务停止,如下图所示:

 

 再次在客户端进行测试,具体显现个如下:

修改代理服务器上的配置文件,将 Nginx2 的部分虚拟主机修改为“down”,具体如下:

 

重新加载 Nginx 服务配置,再次在客户端进行测试,具体现象如下:

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

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

相关文章

BMR:基于Boostrapping多视图的虚假新闻检测

一、概述 文章提出了三种视图信息来表示一篇新闻:文本、图像结构、图像语义。然后设计了改进的多门混合专家系统(iMMoE)来进行信息融合。保留单模态信息来保证特征对新闻的保真性,增加的多模态信息能保证不同模态的一致性&#xf…

【KingSCADA】通过地址引用和弹窗模板实现设备控制

当相同的设备过多时,要做很多相同的弹窗,这种情况下可以通过地址引用和弹窗模板实现设备控制。 1.变量创建 2.画面开发 以阀门控制为例,只需要做一个阀门控制界面模板 3.地址引用 # 4.实现效果

每日算法4/21

LCR 073. 爱吃香蕉的狒狒 题目 狒狒喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。 狒狒可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选…

web自动化系列-selenium的3种弹框操作(十二)

在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做web操作时的一些常用组件 ,所以,selenium就不得不支持这些组件 。 1.弹框介绍…

随机森林计算指标重要性—从决策树到随机森林Python实现

文章目录 前言一、节点二、决策树2.1 案例分析——优良的水稻2.2 案例分析——家庭财富水平 三、随机森林三、Python代码实现3.1 关键问题3.1.1 节点的表示3.1.2 决策树的表示** 根节点划分左右子树的依据 **3.1.3 随机森林的构造与重要性的表示 3.2 节点类3.2 决策树类3.2.1 初…

安装Fake UserAgent 库的方法最终解答!_Python库

安装Python库Fake UserAgent 我的环境:Window10,Python3.7,Anaconda3,Pycharm2023.1.3 Fake UserAgent Fake UserAgent 是一个Python库,用于生成随机或特定的用户代理(UserAgent)字符串。用户…

明日周刊-第7期

转眼间就又快到了五一假期,小长假有什么计划吗。封面配图是杭州高架上的月季花,非常好看。 文章目录 一周热点资源分享言论歌曲推荐 一周热点 鸿蒙系统持续扩大影响力:近期,华为官方宣布广东省已有超过600款应用加入鸿蒙系统&…

【自用】个人の画版规范

供电 总结起来就是:从正面看。从左到右的顺序是 VCC GND VEE,若是单电源则是VEE GND GND。 尽量用3p的。 XH2.54 接线端子

每天五分钟机器学习:神经网络模型参数的选择

本文重点 在深度学习和人工智能的浪潮中,神经网络作为其中的核心力量,发挥着举足轻重的作用。然而,神经网络的性能并非一蹴而就,而是需要经过精心的参数选择和调优。 神经网络由大量的神经元组成,每个神经元之间通过权重进行连接。这些权重,以及神经元的偏置、激活函数…

9.Eureka服务发现+Ribbon+RestTemplate服务调用

order-service服务通过服务名称来代替 ip:port的方式访问user-service服务的接口。 原来的请求代码: Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;Ov…

PHP反序列化漏洞原理(附带pikachu靶场演示)

1.反序列化概念 序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()反序列化:就是在适当的时候把这个字符串再转化成原来的变量使用,就是序列化的逆过程。实现函数是unserialize() 直白一点就是:序列化是把对象转换成字节流&#…

SpringAOP从入门到源码分析大全(四)SpringAOP的源码分析

文章目录 系列文档索引六、EnableAspectJAutoProxy源码分析1、AnnotationAwareAspectJAutoProxyCreator源码(1)wrapIfNecessary方法(2)createProxy 2、getAdvicesAndAdvisorsForBean查找所有Advisor(1)find…

深入理解CAS机制-基础使用与三大问题

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 原子性问题 3. 乐观锁与悲观锁 4. CAS操作 5. CAS算法带来的三大…

Dynamic Wallpaper for Mac激活版:视频动态壁纸软件

Dynamic Wallpaper for Mac 是一款为Mac电脑量身打造的视频动态壁纸应用,为您的桌面带来无限生机和创意。这款应用提供了丰富多样的视频壁纸选择,涵盖了自然风景、抽象艺术、科幻奇观等多种主题,让您的桌面成为一幅活生生的艺术画作。 Dynami…

【教程】MySQL数据库学习笔记(五)——约束(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 第四章 《数据操…

Linux基本命令之正则表达式(转义字符)

一:查看二进制文件 strings 命令:strings 文件名 生成链接文件 ln 命令:ln 选项 源文件(f1) 链接文件(f2) 软连接:eg:ln -s f1 f2 软链接不能跨分区链接,但可以在同一分区的不同目录下链接…

go+react实现远程vCenter虚拟机管理终端

文章目录 React-VcenterDemoQuick Start React-Vcenter 基于go & react实现远程vSphere vcenter虚拟机终端console页面,提供与vcenter管理中的Launch Web Console相同的功能。 项目地址:react-vcenter Demo URL: http://localhost:3000 Quick St…

3-氨基苯硼酸接枝的透明质酸(HA-PBA)和聚乙烯醇(PVA )水凝胶负载胶束和药物

3-氨基苯硼酸接枝的透明质酸(HA-PBA)和聚乙烯醇(PVA )水凝胶负载胶束和药物 苯硼酸酯交联形成水凝胶的步骤: HA-PBA的制备:首先,3-氨基苯硼酸通过与透明质酸(HA)中的羧基…

Selenium web自动化测试环境搭建

Selenium web自动化环境搭建主要要经历以下几个步骤: 1、安装python 在python官网:Welcome to Python.org,根据各自对应平台如:windows,下载相应的python版本。 ​ 下载成功后,点击安装包,一直…

数据结构10:堆和堆排序

文章目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的应用表示文件系统的目录树结构 二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构顺序存储链式存储 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构 堆的实现堆的插入堆的删除堆的创建向…