代理和负载均衡

四层代理和七层代理

四层代理 是基于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;
   }
}
相关推荐
zyl8372131 分钟前
Docker 使用手册
运维·docker·容器
古月方枘Fry1 小时前
MGRE实验
运维·服务器
stolentime1 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
bush43 小时前
嵌入式linux学习记录四
linux·运维·学习
lihao lihao4 小时前
软硬链接
linux·运维·服务器
TOWE technology4 小时前
智能安防监控系统如何做好防雷?——视频信号SPD综合应用方案解析
运维·服务器·防雷产品·信号保护·信号防雷·spd
楼田莉子4 小时前
Docker学习:Docker介绍及其架构介绍
运维·后端·学习·docker·容器·架构
大明者省5 小时前
IIS 端口绑定正常访问的原理说明与常见误区澄清
运维·服务器·笔记
晚风吹红霞5 小时前
Linux软件包管理器详解 —— yum与apt的使用及软件生态
linux·运维·服务器
曦夜日长5 小时前
Linux系统篇,进程概念(一):计算机体系、操作系统的认识、程序的加载过程
linux·运维·网络