代理和负载均衡

四层代理和七层代理

四层代理 是基于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;
   }
}
相关推荐
海域云SeaArea_1 小时前
Rustdesk中继服务器搭建(windows 服务器)
运维·服务器·windows
参.商.1 小时前
【RH124 问答题】第 8 章 监控和管理 Linux 进程
linux·运维
热心市民梁先生2 小时前
oect刷入arm系统安装docker
运维·docker·容器
图扑可视化3 小时前
3D 管道如何实现流动的?
运维·数字孪生·三维可视化·管道·3d管道
爱掉发的小李3 小时前
Linux 环境下 Docker 安装与简单使用指南
java·linux·运维·c++·python·docker·php
我命由我123455 小时前
Windows 操作系统 - Windows 设置始终使用 Windows 照片查看器打开图片
运维·windows·经验分享·笔记·学习·操作系统·运维开发
Tipriest_5 小时前
ubuntu apt安装与dpkg安装相互之间的关系
linux·运维·ubuntu·apt·flatpak·dpkg·snap
liliangcsdn6 小时前
linux pip/conda 修改默认cache位置
linux·运维·pip
mortimer6 小时前
记一次网站服务器无缝扩容:利用软链接实现零停机数据迁移
linux·运维
Dontla7 小时前
docker desktop入门(docker桌面版)(提示wsl版本太低解决办法)
运维·docker·容器