Linux服务:Nginx反向代理与负载均衡

一、Nginx反向代理

1、什么是反向代理?

代理分为两类,正向代理和反向代理。

①正向代理:帮助用户访问服务器,缓存服务器内容。

②反向代理:代理服务器处理用户的请求,决定转发请求给谁处理负载均衡的作用。

2、实现反向代理实验

nginx可以代理七层跟四层,代理七层代理比四层看到的东西功能强大,可以看到真实数据。

使用模块:proxy_pass 反向代理的服务器地址或域名;

①实验拓扑

②实验目的:

由pc2代理服务器,代理服务端pc3处理用户pc1的请求

③实验过程

①首先准备三台虚拟机且关闭防火墙和selinux,其中pc2和pc3安装nginx。
pc2、pc3执行:
yum  install   epel-release -y 
yum  install   nginx  -y 
#安装nginx
②pc2和pc3上创建子配置文件test.conf
pc2、pc3执行:
cd /etc/nginx/conf.d/
touch test.conf
#进入子配置文件目录创建子配置文件
③服务端pc3子配置文件内容
server {root /etc/nginx/html;
#指定虚拟主机根目录
}
④创建服务端pc3虚拟主机的根目录,并写默认内容为this is pc3在index.html中
mkdir  -p /etc/nginx/html;
echo "this is pc3">/etc/nginx/html/index.html
#递归创建文件夹并设置默认主页内容
⑤反向代理服务器pc2的配置文件内容:
server {listen 80;
#监听所有80端口server_name www.lhj.com;
#创建虚拟主机www.lhj.com
location /{
proxy_pass http://192.168.30.13
#访问反代的虚拟主机www.lhj.com则由192.168.30.13处理请求
}    
}
⑥代理服务和服务端开启nginx服务,并在pc1客户端添加www.lhj.com的对应hosts文件进行测试
pc2、pc3执行:
systemctl start nginx 
pc1执行:
sed -i '1a\192.168.30.12 www.lhj.com' /etc/hosts  
#在/etc/hosts文件的第一行添加192.168.30.12 www.lhj.com内容
curl  www.lhj.com
#访问反向代理服务器
得到内容
this is  pc3

二、反向代理负载均衡

nginx反向代理负载均衡中用的是upstream模块,应用于http模块中,目的为所有server模块提供服务,默认算法为轮询。

使用格式

upstream name(反向代理名称){

}

其他配置:①max_conns=数字;设置最大活动连接数,默认为0表示无限制

②max_fails=数字;后端服务器下载条件,对本次调度选择的后端服务器进行连续检查,如果都失败标记不可用,默认1次。

③fail_timeout=time;后的服务器上行时间,坏掉后修复需要检查多久才能上线使用,默认检查10s。

④backup 设置为备份服务器,所有服务器不可用时使用此服务,注意不能指定自己;

⑤down 指定此服务器down状态,无论本身是什么状态;

1、反向代理负载均衡调度算法

①轮询算法

默认算法是轮询算法即反向代理服务器处理用户请求时,每个后端服务器都轮流给。

upstream lhj{ server http://192.168.170.111;

                       server http://192.168.170.114

}

②加权轮询算法

在默认轮询的基础上增加权重,weight=number。如果后端有2个服务器其中一个配置权重为weight=3另外一个不配置默认是1,则有用户访问时分配给给有权重的服务器和不配置权重的服务器的比例为3:1。

upstream lhj{ server http://192.168.170.111      weight=3;

                      server  http://192.168.170.114;

}

③最小连接算法

按照nginx反向代理服务器和后端服务器的连接数分配请求,连接越少的分配处理请求优先级越高。例如若最小连接数(least_conn;)是设置是3,后端服务器1有2个请求在处理,而后端服务器2只有一个请求在处理则新请求交给后端服务器2。

upstream lhj{ least_conn;

                      server   htttp://192.168.170.111;

                      server http://192.168.170.114;

}

④ip url哈希算法

每个请求按访问ip或者url的hash结果分配,这样每个访客固定访问一个后端服务器,不需要知道是如何计算的,只要了解会固定访问一个后端服务器即可。

⑤响应时间fair算法

需要解读nginx第三方模块ngx_http_upstream_fair_module实现,配置时max_fails=number为后端服务器配置,默认单位为秒,按照响应时间来处理请求,响应时间越短越优先分配。

2、实现反向代理负载均衡实验

使用变量:$remote_root

①实验拓扑

②实验目的

用户pc1访问代理服务的www.lhj.com虚拟主机域名时,若由服务端pc3服务器处理则返回this is pc3若由服务器pc4服务器处理则返回this is pc4用nginx反向代理实现负载均衡。

③实验过程

①首先准备四台虚拟机且关闭防火墙和selinux,其中pc2、pc3、pc4安装nginx。
pc2、pc3、pc4执行:
yum  install   epel-release -y 
yum  install   nginx  -y 
#安装nginx
②pc2、pc3、pc4上创建子配置文件test.conf
pc2、pc3、pc4执行:
cd /etc/nginx/conf.d/
touch test.conf
#进入子配置文件目录创建子配置文件
③服务端pc3子配置文件内容
server {root /etc/nginx/html;
#指定虚拟主机根目录
}
④创建服务端pc3虚拟主机的根目录,并写默认内容为this is pc3在index.html中
mkdir  -p /etc/nginx/html;
echo "this is pc3">/etc/nginx/html/index.html
#递归创建文件夹并设置默认主页内容
⑤服务端pc4子配置文件内容
server {root /etc/nginx/html;
#指定虚拟主机根目录
}
⑥服务端pc4子配置文件内容
server {root /etc/nginx/html;
#指定虚拟主机根目录
}
⑦创建服务端pc4虚拟主机的根目录,并写默认内容为this is pc4在index.html中
mkdir  -p /etc/nginx/html;
echo "this is pc4">/etc/nginx/html/index.html
⑧反向代理服务器pc2的主配置文件和子配置文件修改:
主配置文件内容修改:
vim /etc/nginx/nginx.conf
#打开主配置文件,在主配置文件的http模块中添加内容如下:
upstream  lhj {
#创建名字为lhj的方向代理负载均衡server 192.168.30.13;
#服务端pc3地址server 192.168.30.14;
#服务端pc4地址
}
#子配置文件test.conf内容:
server {listen 80;
#监听所有80端口server_name www.lhj.com;
#创建虚拟主机www.lhj.com
location /{
proxy_pass http://lhj;
#访问反代的虚拟主机www.lhj.com则由反向代理负载均衡lhj来处理请求
}    
}
⑨代理服务和服务端开启nginx服务,并在pc1客户端添加www.lhj.com的对应hosts文件进行测试
pc2、pc3、pc4执行:
systemctl start nginx 
pc1执行:
sed -i '1a\192.168.30.12 www.lhj.com' /etc/hosts  
#在/etc/hosts文件的第一行添加192.168.30.12 www.lhj.com内容
curl  www.lhj.com
#多次使用访问反向代理服务器
得到内容
this is  pc3
this is  pc4的比例大概为1:1

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

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

相关文章

LabVIEW最佳传输系统设计

LabVIEW最佳传输系统设计 介绍了基于LabVIEW软件开发的最佳基带传输系统和最佳带通传输系统的设计。通过软件仿真实现了脉冲成形滤波器和匹配滤波器的设计,证明了系统在消除码间干扰和抗噪声方面的优异性能。此设计不仅激发了学生的学习兴趣,还有助于提…

spring-boot-starter-parent和spring-boot-dependencies介绍

springboot项目的pom文件中&#xff0c;我们经常看见这样(下图)两种springboot的版本依赖管理方式&#xff1b;图片中的这两种依赖声明方式任意用其中一种都可以。文章后面会简单阐述一下区别和使用场景。 事例中完整的pom文件 <?xml version"1.0" encoding&quo…

BetterDisplay Pro for Mac v2.0.11激活版:屏幕显示优化专家

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件&#xff0c;可以帮助用户调整显示器的颜色和亮度&#xff0c;以获得更加真实、清晰和舒适的视觉体验。 软件下载&#xff1a;BetterDisplay Pro for Mac v2.0.11激活版下载 &#x1f50d; 精准校准&#xf…

备考2024年汉字小达人:历年考题练一练-18道选择题

新学期开学已经两周了&#xff0c;相信孩子们的学习都已经进入正轨了&#xff0c;心也收回来了。距离2024年第11届汉字小达人比赛还有八个多月的时间&#xff0c;建议如果有可能都让孩子参加一下&#xff0c;无需报名费&#xff0c;如果没时间准备也可以直接上阵参赛&#xff0…

【Maven】Maven 基础教程(三):build、profile

《Maven 基础教程》系列&#xff0c;包含以下 3 篇文章&#xff1a; Maven 基础教程&#xff08;一&#xff09;&#xff1a;基础介绍、开发环境配置Maven 基础教程&#xff08;二&#xff09;&#xff1a;Maven 的使用Maven 基础教程&#xff08;三&#xff09;&#xff1a;b…

tritonserver学习之八:redis_caches实践

tritonserver学习之一&#xff1a;triton使用流程 tritonserver学习之二&#xff1a;tritonserver编译 tritonserver学习之三&#xff1a;tritonserver运行流程 tritonserver学习之四&#xff1a;命令行解析 tritonserver学习之五&#xff1a;backend实现机制 tritonserv…

如何助力亚马逊美客多等跨境平台迅速推品?自养号测评环境搭建全攻略

为了在亚马逊上迅速推广新品并提升可见性&#xff0c;吸引潜在买家&#xff0c;增加销售额&#xff0c;制定并执行一系列精心策划的行动至关重要。以下是具体的推广策略&#xff0c;以一个月为时间框架进行规划&#xff1a; 第一周&#xff1a;前期准备与产品页优化 市场研究&…

腾讯云优惠券领取的三个渠道,一个比一个优惠!

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Mac专用投屏工具AirServer 7.27 for Mac中文版2024最新图文教程

Mac专用投屏工具AirServer 7.27 for Mac中文版是一款适用于Mac的投屏工具&#xff0c;可以将Mac屏幕快速投影到其他设备上&#xff0c;如电视、投影仪、平板等。 Mac专用投屏工具AirServer 7.27 for Mac中文版具有优秀的兼容性&#xff0c;可以与各种设备配合使用。无论是iPhon…

05 OpenCV图像混合技术

文章目录 理论算子示例 理论 其中 的取值范围为0~1之间 算子 addWeighted CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, double beta,double gamma, OutputArray dst, int dtype -1 ); 参数1&#xff1a;输入图像Mat …

JVM 第二部分-2(堆,方法区)

4.堆 堆 一个Java程序&#xff08;main方法&#xff09;对应一个jvm实例&#xff0c;一个jvm实例只有一个堆空间堆是jvm启动的时候就被创建&#xff0c;大小也确定了。大小可以用参数设置。堆是jvm管理的一块最大的内存空间 核心区域&#xff0c;是垃圾回收的重点区域堆可以位…

加密与安全_探索对称加密算法

文章目录 概述常用的对称加密算法AESECB模式CBC模式 (推荐)ECB VS CBC 附&#xff1a;AES工具类总结 概述 对称加密算法是一种加密技术&#xff0c;使用相同的密钥来进行加密和解密数据。在这种算法中&#xff0c;发送方使用密钥将明文&#xff08;未加密的数据&#xff09;转…