代理和负载均衡

四层代理和七层代理

四层代理 是基于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;
   }
}
相关推荐
Trouvaille ~6 小时前
【Linux】线程同步与互斥(一):线程互斥原理与mutex详解
linux·运维·服务器·c++·算法·线程·互斥锁
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.6 小时前
Keepalived 双主(Active‑Active)模式
运维·服务器
HalvmånEver6 小时前
Linux:进程 vs 线程:资源共享与独占全解析(线程四)
java·linux·运维
zzzsde7 小时前
【Linux】进程(2):进程概念与操作理解
linux·运维·服务器
天才奇男子7 小时前
《深度解析HAProxy七层代理:原理、配置与最佳实践》
linux·运维·微服务·云原生
交换机路由器测试之路7 小时前
交换机专题:什么是ALS(激光器自动关断)
运维·网络·以太网·交换机·节能
浪客灿心7 小时前
Linux的Ext系列文件系统
linux·运维·服务器·c语言
速易达网络7 小时前
linux命令大全
linux·运维·excel
·云扬·7 小时前
Redis运维实战:大key与热key排查优化、监控指标及内存策略全解析
运维·数据库·redis
落笔映浮华丶7 小时前
linux项目自动构建工具 -make/makefile
linux·运维·服务器