Squid正反向代理

Squid是什么

  Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能 的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到 客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个 重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个 dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
SQUID如何工作
[传统代理]
1.SQUID被绑定到代理服务器的3128端口。
2.客户端浏览器被配置使用代理服务器的3128端口。
3.客户端不需要配置DNS。4.代理服务器上需要配置代理服务器。
5.客户端不需要配置缺省路由。
当我们在客户端浏览器中打开一个web请求,比如“http://www.96333.com”,这时将陆续发生以下事件:
1.客户端使用某一端口(比如1025)连接代理服务器3128端口,请求web页面“http://www.96333.com”
2.代理服务器向DNS请求“www.96333.com”,得到相应的IP地址2.3.4.5。然后,代理服务器使用某一端口(比如1037)向该IP地址的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从www.96333.com的角度看来,连接是在1.2.3.4地1037端口和2.3.4.5的80端口之间建立的。
从client的角度看来,连接是在192.168.1.100的1025端口和1.2.3.4的3128端口之间建立的。
[透明代理]
透明代理的意思是客户端根本不需要知道有代理服务器的存在。
在以上基础上我们做以下工作:
1.配置透明代理服务器软件运行在代理服务器的3128端口。
2.配置代理服务器将所有对80端口的连接重定向到3128端口。
3.配置客户端浏览器直接连解到Internet。
4.在客户端配置好DNS.
5.配置客户端的缺省网关为192.168.1.1.
当我们在客户端浏览器中打开一个web请求,比如“http://www.96333.com”,这时将陆续发生以下事件:
1.客户端向DNS请求“www.96333.com”,得到相应的IP地址2.3.4.5。然后,客户端使用某一端口(比如1066)向该IP地址的80端口发起web连接请求,请求web页面。
2.当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口3128。于是,透明
代理服务器用某一端口(比如1088)向2.3.4.5的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从www.96333.com的角度看来,连接是在1.2.3.4地1088端口和2.3.4.5的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1066端口和2.3.4.5的80端口之间建立的。
以上就是传统代理服务器和透明代理服务器的区别所在。
[反向代理]
反向代理是相对于传统代理而言,是代理web服务器接受客户端的请求。在此,我们忽略客户端的设置,假设客户端是可以直接访问互联网。
web服务器与客户端的结构如下:
假设已经将www.96333.com的域名指向了squid服务器所在的ip,并且在web服务器集群里做了dns轮询。
web server1 -|
web server2 -|- squid 服务器/ INTERNET / - Client
web server3 -|
1.客户端通过IE向DNS服务器发送访问www.96333.com的请求,由客户所在地的DNS服务器解析www.96333.com的IP为2.3.4.5并返回给用户。
2.客户收到DNS返回的服务器IP地址,重新向www.96333.com指向的IP地址发送访问请求。
3.squid服务器接收到用户的请求后,查询自身缓存中是否有用户请求内容,有则直接发送给客户端,如果没有则通过内部DNS轮询查询空闲服务器,并将 客户请求发送到该服务器,在获取到用户数据并返回给用户的同时保留一份在自己本身的缓存当中。在用户看来,自己访问的是www.96333.com这个服 务器,实际上真正的WEB服务器为SQUID缓存后面的服务器或者服务器集群,通过外部DNS做CNAME转向,将用户请求转发到内部真正的web服务器 上去。

配置部分
squid正向代理:我的虚拟机目前不能上网 但是真机可以上网  这里我用我的真机作为代理服务器,虚拟机通过代理访问网站

哪台机器做代理这部分配置就在哪  我的在真机上
yum install -y squid                 ##安装正向代理
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
systemctl stop firewalld   ##如果不关防火墙 开启3128端口的访问权限
如果防火墙未关
firewall-cmd --permanent --add-port=3128/tcp        
firewall-cmd --reload   



在虚拟机中的浏览器: 选择第一个connection 设置

输入的IP是真机的ip   能上网的那台机器的IP

####测试 达到效果  虚拟机不能上网 但是可以打开百度网页


squid反向代理
这里使用两台虚拟机 ,一台IP:172.25.8.10  另一台IP:172.25.8.11
IP:172.25.8.10  开始之前先关掉这台机器的httpd服务 然后进行如下操作

systemctl stop httpd
vim /etc/squid/squid.conf
 56 http_access allow all
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.8.11 parent 80 0 no-query
 61 # Uncomment and adjust the following to add a disk cache directory.
 62 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid
systemctl stop firewalld


IP: 172.25.8.11  上进行如下操作

yum install -y httpd
vim /var/www/html/index.html
<h1>172.25.8.10</h1>
systemctl restart httpd

测试:真机浏览器访问172.25.8.10 会访问到172.25.8.11的http的默认发布文件


平衡轮询
IP:172.25.8.10   操作如下

 vim /etc/squid/squid.conf
 56 http_access allow all
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.8.250 parent 80 0 no-query originserver round-robin name=w    ebserver1   ###originserver:指定name=webserver1,代表所以信息,以round-robin(轮询)方式工作
 61 cache_peer 172.25.8.11 parent 80 0 no-query originserver round-robin name=we    bserver2
 62 cache_peer_domain webserver1 webserver2 www.westos.com  ##www.westos.com做轮询
 63 # Uncomment and adjust the following to add a disk cache directory.
 64 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid.service


在IP:172.25.8.250 和IP:172.25.8.11的主机加入解析 这两台主机都要安装httpd并开启服务

vim /etc/hosts
172.25.8.10 www.westos.com

##在172.25.8.250的主机上
vim /var/www/html/index.html
<h1>172.25.8.250</h1>

测试:真机浏览器输入www.westos.com 







 

猜你喜欢

转载自blog.csdn.net/qq_41636653/article/details/81869284
今日推荐