Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。本篇文章讲述了squid的两种代理方式。
1.squid正向代理
[root@squid-server ~]# yum install squid.x86_64 -y
[root@squid-server ~]# vim /etc/squid/squid.conf
将56行内容如图修改。
[root@squid-server ~]# systemctl restart squid
[root@squid-server ~]# systemctl stop firewalld.service
如下图server主机没有任何的配置,是无法访问百度:
如果要使该主机可以访问百度,可以点击浏览器左上角的Edit,选择Preferences,出现如下界面:
选择Advanced的Network,点击set,出现如下界面:
选择Manual proxy configuration,在HTTP Proxy中输入squid代理服务器的IP地址,端口为3128。点击OK,再登陆百度就可以登陆上:
server主机之所以能够登陆百度,是因为server主机将请求发送给了squid服务器,由squid服务器去互联网上取回数据交给了server主机,所以squid主机必须保证可以访问百度。
2.反向代理
我有两个apache服务器,分别是172.25.254.180和172.25.254.191,squid反向代理就是客户端在访问squid的apache服务时,squid主机去172.25.254.180和172.25.254.191主机上取数据,而squid服务器上是没有apache服务的,具体配置如下。
[root@squid-server ~]# vim /etc/squid/squid.conf
59行60行61行和62行的内容表示,当有人访问squid服务器的80端口时,squid服务器会轮询着去172.25.254.180和172.25.254.191主机上分别取数据,并且172.25.254.180主机的权重为2,也就是说,去172.25.254.180主机上取两次数据,再去172.25.254.191主机上取一次数据。
[root@squid-server ~]# systemctl restart squid.service
测试端解析如下:
[root@foundation80 Desktop]# vim /etc/hosts
172.25.254.190 www.westos.com
172.25.254.190为squid服务器的ip地址。
测试如下,即成功: