代理和负载均衡

四层代理和七层代理

四层代理 是基于tcp/udp协议的 IP+端口,数据包转发,对请求没有任何操作和处理

七层代理 基于http协议,对请求的内容进行处理,转发到后端服务器

速度:四层的速度快,内核,不做任何处理,转发速度比较快

七层走的是用户态,需要对内容进行处理,转发速度相对较慢

正向代理和反向代理

正向代理:都是通过代理服务器访问,明确指向后端服务器,一般的都是一对一

反向代理:也是通过代理服务器访问,一个代理服务器会有多台后端服务器提供代理服务器进行转发请求,一对多

只有一对多,才涉及负载均衡的算法问题

算法

1、轮询 ,默认算法可以不加

2、加权轮询,给后端服务器设置不同的权重,通过权重分发代理客户端的请求,权重高的轮询的次数就多,权重的少,轮询的次数就比较少,但是不绝对,权重高德服务器会被频繁的请求

weight=权重值;

3、最小连接数,会把请求转发到当前连接数较小的服务器,避免请求全集中到高性能或者高权重的服务器,可以和加权轮询配合使用

使用大部分场景

4、ip_hash,根据客户端请求的IP地址生成一个hash值,然后转发到后端服务器,下一次在访问,还是之前的服务器,而且还有缓存

需要把请求客户端地址,转发到固定的服务器,可以使用这个方法,大并发可以,小并发也可以,但是后端服务器发生变化,请求的后端服务器也会发生变化(后端服务器数量变少了,后端服务器的数量增加了,请求的地址未必会变)

缩容的情况,业务量比较少,不需要那么多后端服务器,才会缩容,只会扩

5、url_hash,根据请求的url地址生成一个hash值,然后转发到后端服务器,但是下次访问,如果请求的url不变,还是上次访问的后端服务器,而且也有缓存

url地址发生变化,或者后端服务器数量也会发生变化,可能会变更后端服务器的地址

实验

正向代理配置

类似于vpn ,科学上网,加速器

关闭防火墙安全机制

复制代码
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://指定的服务器
}

企业架构都是反向代理

客户端通过代理服务器访问,但是后端有多台

七层代理

复制代码
#在http全局配置
upstream 自定名称 {
	server IP地址;
	server IP地址;
}

location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
}

负载均衡的算法

加权轮询

复制代码
upstream 自定名称 {
	server IP地址 weight=2;
	server IP地址 weight=3;
}
在http全局配置
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
}

最少连接数算法

复制代码
upstream 自定名称 {
	least_conn;
	server IP地址 weight=2;
	server IP地址 weight=3;
}
在http全局配置
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
}

ip_hash

复制代码
upstream 自定名称 {
	ip_hash;
	server IP地址 weight=2;
	server IP地址 weight=3;
}
在http全局配置
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
}

url_hash

复制代码
upstream 自定名称 {
	hash $request_uri consistent;
	server IP地址 weight=2;
	server IP地址 weight=3;
}
在http全局配置
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
}

反向代理

基于域名

复制代码
#改主机名
upstream 自定名称 {
	server 域名1 weight=2;
	server 域名2 weight=3;
}
location / {
  root html;
  index index.html index.htm;
  proxy_pass http://自定名称;
  proxy_set_header HOST $host;
  #请求本机的IP地址
  proxy_set_header X-Real-IP $remote_addr;
  #传给后端服务器
}
#改变剩余两台客户机的域名加主机

四层反向代理

复制代码
在全局模块中写
stream {
   upstream test {
       server IP地址1:80;
       server IP地址2:80;
   }
   server {
    	listen 80;
    	#监听端口
    	proxy_pass test;
   }
}
相关推荐
碳基沙盒20 小时前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒5 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦5 天前
nginx
运维·nginx
Gofarlic_oms15 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.5 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器