mysql之squid代理服务器

(一)squid代理服务器

1、nginx做代理服务器

(1)反向代理(负载均衡)
(2)缓存
(3)nginx无法做正向,通过proxy_pass进行反向代理

2、squid:正向代理服务器(类似)

3、squid的作用:支持正向代理、缓存加速、基于ACL可以过滤控制

4、squid代理的工作机制

(1)代替客户端向网站请求数据,不需要访问代理的ip地址,直接请求目的网站,由代理服务器处理请求和响应,可以隐藏用户的真实ip地址
(2)客户端访问目标网站之后(静态web元素)保存到缓存中,发送给客户端,下一次所有的客户机都可以使用缓存访问,加快访问速度(只能缓存静态web页面,无法缓存动态web)

5、squid的数据流向

mysql之squid代理服务器_第1张图片

(二)squid代理的作用

1、资源获取,代替客户端获取目标服务器的资源

2、加速访问,代理服务器可能和目标服务器距离更近,可以起到一定的加速作用

3、缓存作用,代理服务器保存从目标服务器获取的资源,客户端下一次再请求目标服务器可以直接访问缓存即可,减轻目标服务器的压力

4、隐藏真实的IP地址,代理服务器代替客户端请求,客户端的信息不会显示

(三)squid代理的类型

1、传统代理(正向代理),需要在客户端上指定好代理服务器的地址和端口

2、透明代理,客户端不再需要指定代理服务器的地址和端口,而是通过默认路由来进行转发(squid服务器做网关,进行转发)

3、反向代理,在反向代理的squid服务器中,如果缓存了请求资源,将资源直接返回给客户端;否则,代理服务器会继续代理客户端向web服务器发送请求,然后再把请求的资源响应给客户端,同时把响应缓存在本地,后续请求者都可以使用(有缓存,直接响应缓存内容;没有缓存,才会代替客户端请求web资源,响应结果保存在缓存,然后响应给客户端,下一次直接访问缓存即可—缓存是否命中

mysql之squid代理服务器_第2张图片

补充:SNAT、DNAT和代理服务器squid之间的区别

SNAT、DNAT和代理服务器squid之间的区别

SNAT和DNAT

代理服务器squid

网络层次

网络层

应用层

数据处理方式

改变数据包头部的源IP地址和目的地址

不改变数据包的任何信息,直接把数据包发给代理,代理通过应用层过滤的方式实现转发(类似路由器)

(四)实验架构

1、test1:客户端(10)

2、test2:squid(20),做透明代理会需要双网卡

3、web页面:nginx1,nginx2

(五)实验:正向代理

mysql之squid代理服务器_第3张图片1、配置squid代理服务器

(1)编译安装

mysql之squid代理服务器_第4张图片

(2)创建软连接、创建用户、赋权

2、修改squid的配置文件

(1)配置文件的匹配规则:自上而下匹配,匹配之后,不再向下匹配

mysql之squid代理服务器_第5张图片

(2)Squid 的运行控制

mysql之squid代理服务器_第6张图片

mysql之squid代理服务器_第7张图片(3)创建 Squid 服务脚本

mysql之squid代理服务器_第8张图片

(4)赋权

mysql之squid代理服务器_第9张图片

3、构建传统代理服务器(正向代理)

(1)修改配置文件(缓存目录)

mysql之squid代理服务器_第10张图片

mysql之squid代理服务器_第11张图片

(2)修改防火墙规则

(2)修改防火墙规则

(3)配置nginx

(4)虚拟机测试

mysql之squid代理服务器_第12张图片

mysql之squid代理服务器_第13张图片

mysql之squid代理服务器_第14张图片

mysql之squid代理服务器_第15张图片

mysql之squid代理服务器_第16张图片

(六)实验:透明代理

取消代理地址和端口

将一台客户机模拟外网:12.0.0.12

双网卡分别指向网关

mysql之squid代理服务器_第17张图片

1、添加虚拟网卡

mysql之squid代理服务器_第18张图片

mysql之squid代理服务器_第19张图片mysql之squid代理服务器_第20张图片

2、修改squid配置文件

mysql之squid代理服务器_第21张图片

3、开启路由转发功能,实现本机中不同网段的地址转发

4、修改防火墙策略

5、配置web服务器(nginx)

mysql之squid代理服务器_第22张图片

6、修改客户端的网卡配置文件

mysql之squid代理服务器_第23张图片

7、测试

mysql之squid代理服务器_第24张图片

mysql之squid代理服务器_第25张图片

mysql之squid代理服务器_第26张图片

8、基于代理的ACL控制

(1)权限控制

mysql之squid代理服务器_第27张图片

mysql之squid代理服务器_第28张图片

(2)以列表形式

mysql之squid代理服务器_第29张图片

mysql之squid代理服务器_第30张图片

实验:反向代理

mysql之squid代理服务器_第31张图片

1、恢复配置

mysql之squid代理服务器_第32张图片mysql之squid代理服务器_第33张图片

2、清空iptables的策略

mysql之squid代理服务器_第34张图片

3、修改squid配置文件

mysql之squid代理服务器_第35张图片

(1)http_port 20.0.0.20:80 accel vhost vport

squid从一个缓存变成了一个web服务器的反向代理的加速模式,squid监听的是80端口的请求,同时和web服务器的请求端口绑定。

squid不是转发请求,而是要么从缓存获取数据,要么直接请求绑定的web端口

accle:反向代理加速模式

vhost:支持域名或者主机名来代理服务器

vport:支持ip+端口来表示代理服务器

2)cache_peer 192.168.233.61 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1

cache-peer缓存获取失败,请求的服务器名

parent:上下级的关系,80(web服务的端口),0表示就是一台代理服务器squid,不涉及运行商

No-query:不查询,直接获取数据

originserver:指定源服务器

round-robin max_conn=30 weight=1 name=web1:squid通过轮询的方式将请求分

max_conn=30:最大连接数

weight=1:权重

name=web1:设置别名

4、映射(客户端)

mysql之squid代理服务器_第36张图片

5、测试(实现轮询)

mysql之squid代理服务器_第37张图片

你可能感兴趣的:(mysql,数据库)