squid代理服务器

squid代理服务器:

nginx也可以代理:反向代理 ---- 负载均衡

nginx也可以缓存

nginx无法做正向代理。

squid:正向代理,

squid:正向代理,缓存加速,acl过滤控制。

代理的工作机制:

1,代替客户端向网站请求数据,不需要访问代理的ip地址。直接请求目的网站,有代理服务器处理请求和响应。

可以隐藏用户的真实ip地址

2,客户端访问目标网站之后(静态web元素)保存到缓存中,发送给客户端。下一次客户机都可以使用缓存访问。加快访问速度。

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

squid:作用:

1,资源获取,代替而不是转发,代替客户端获取目标服务器的资源

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

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

4,隐藏真实IP的地址。代理我父亲替代客户端请求。客户端的信息不会显示。

squid代理的类型:

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

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

3,反向代理,在反向代理的squid服务器当中缓存了请求资源,将资源直接返回给客户端。

否则,代理服务器会代理客户端向web服务器发起请求,然后再把请求的资源响应给客户端。

同时把响应缓存在本地,后续请求者都可以使用。

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

SNAT和DANT 代理服务器squid 区别

SNAT和DANT工作在网络层

走的是数据包 是改变数据包头部的源ip地址和目的ip地址

代理服务器squid工作在应用层 不改变任何信息,直接把数据包发给代理,代理通过应用层过滤的方式来实现转发。(有点像路由器转发数据包的功能)

实验:

架构:

test1 客户端

test2 squid

web页面 nginx1

nginx2

1,正向代理

squid代理服务器_第3张图片

./configure --prefix=/usr/local/squid \

--sysconfdir=/etc \ 配置文件路径

--enable-arp-acl \ 开启acl过滤模式

--enable-linux-netfilter \ 开启内核过滤

--enable-linux-tproxy \ 支持透明模式

--enable-async-io=100 \ 异步IO

--enable-err-language="Simplify_Chinese" \ 错误信息的显示语言

--enable-underscore \ 允许URL地址中含有下划线

--disable-poll \

--enable-epoll \

--enable-gnuregex

配置文件的匹配规则:自上而下匹配,匹配到了之后,不再向下匹配。

改squid配置文件

检测:

squid -k parse

squid -N -d1

chmod +x /etc/init.d/squid

chkconfig --add squid

chkconfig --level 35 squid on

启动优先级,0-100数字越大,优先级越低

cache_mem 缓存功能使用的内存空间大小。容量最好是4的倍数。单位用MB,建议是内存容量的四分之一

reply_bady_max_size 100 MB 允许用户下载的最大文件的大小。超过浏览器会请求或访问太大。

maximum_object_size 100 MB 能够缓存对象的最大值。超过这个单位不会被缓存,直接返回给用户。

请求成功

后面就是看的缓存

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

2,透明代理

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

关闭代理

web 12.0.0.12

双网卡分别指向网关

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

添加一个网关ens36

配置两个网关:

squid代理服务器_第7张图片

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

修改web网关配置

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

打开服务器的转发功能:

修改配置端口:

重启服务:

systemctl restart squid

添加策略:

客户端网关也要更改:

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

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

1,配置文件写错了,重启没有任何错误

2,添加了ip加端口之后一定要看下ip+端口是否生效。

3,客户端和服务端都要指向网关

4,iptables的策略,在代理服务器要配置,开启转发功能。

ACL访问控制

配置ACL策略:

添加

通过文件来

创建一个目录写一个文件

添加配置:

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

反向代理如何实现:

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

配置两个web网页

情况iptables策略

改配置文件:

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

http_port 192.168.176.70:80 accel vhost vport

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

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

accel:反向代理加速模式

vhost:支持域名或者主机名来表示代理委屈

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

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

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

parent:上下级的关系。80

0:表示就是一台代理服务器,不涉及运营商

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

originserver:最大源服务器

round-robin max_conn=30 weight=1 name=web1

squid通过轮询的方式将请求分发到其中一台节点。

max_conn=30 最大连接数

weight=1 权重

name=web1 设置别名

在客户端把代理地址做映射

测试:

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

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

你可能感兴趣的:(云计算,squid)