#######################################
#############squid正反向代理###########
#######################################
一.正反向代理的区别
正向代理,也就是传说中的代理,他的工作原理就像一个跳板。简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录。结论就是,正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
反向代理.举例: 例用户访问http://ooxx/readme但ooxx上并不存在readme页面他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户 但用户并不知情这很正常,用户一般都很笨 这里所提到的ooxx这个域名对应的服务器就设置了反向代理功能 结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。
正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需要走squid.
二.squid正向代理的配置
1.正向代理:
[root@foundation2 ~]#yum install squid.x86_64 ##安装squid
systemctl start squid ##开启服务
netstat -antlpe | grep squid ##查看端口是否开启
tcp6 0 0 :::3128 :::* LISTEN 0 144748 16898/(squid-1)
vim /etc/squid/squid.conf
56 http_access allow all ##允许任何人访问
62 cache_dir ufs /var/spool/squid 100 16 256 ##设置最大缓存为100M ,16个主目录,256个小目录
systemctl restart squid ##重启服务
测试:
在172.25.254.102主机测试:
Ping www.baidu.com
ping: unknown host www.baidu.com
打开虚拟机
访问www.baudu.com可以访问
2.站点的屏蔽
vim /etc/squid/squid.conf ##配置文件
55 http_access deny badurl ##打开屏蔽 ,要在57行之前
56 acl badurl dstdomain .baidu.com ##屏蔽百度这个站点的所有网页
(acl badurl dst www .baidu.com) ##只屏蔽百度
systemctl restart squid
被屏蔽后测试访问被拒
三.squid反向代理的配置
1..反向代理
先reset 172.25.254.102主机确保没有安装Apache服务
[root@localhost ~]# yum install squid.x86_64 -y
[root@localhost ~]# systemctl start squid
[root@localhost ~]# vim /etc/squid/squid.conf
http_access allow all
http_port 80 vhost vport ##打开80端口接受请求
cache_peer 172.25.254.144 parent 80 0 no-query originserver ##从144上缓存
systemctl restart squid
测试:
在客户端编辑
[root@foundation2 ~]#vim /etc/hosts
172.25.254.102 www.westos.com
浏览器输入www.westos.com
2.squid轮循
[root@localhost ~]# vim /etc/squid/squid.conf ##配置文件
59 http_port 80 vhost vport
60 cache_peer 172.25.254.144 parent 80 0 no-query originserver name=web1 round-robin ##被轮循的网页1 加weight=3 表示刷新被访问页面3次后跳转到另一页面
61 cache_peer 172.25.254.111 parent 80 0 no-query originserver name=web2 round-robin ##被轮循的网页2
63 cache_peer_domain www.westos.com web1 web2 ##每次刷新www.westos.com页面 会交替访问web1 web2
systemctl restart squid
测试:
在客户端编辑
[root@foundation2 ~]#vim /etc/hosts
172.25.254.102 www.westos.com
浏览器输入www.westos.com,刷新出现网页轮循