squid是什么?
代理缓存服务器:接收到用户请求后,自动下载指定资源并存储到本地服务器,以后用户请求相同资源时,直接把存储在本地服务器的资源直接传给用户。
1.正向代理:
#####标准代理模式#####
客户端请求访问一个web页面,访问代理服务器,若代理服务器有缓存数据,则直接从代理服务器下载数据,若代理服务器没有缓存,则会请求原站点数据,从原站点拿到数据后给客户端,这就提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指名代理服务器的IP地址和端口号。
#####透明代理模式#####
透明代理缓冲服务器和正向代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。
2.反向代理:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个节点服务器
一.正向代理
配置squid客户端(可以上网)
1.设置网络
vim /etc/sysconfig/network-scripts/ifcfg=eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.147
NETMASK=255.255.255.0
GATEWAY=172.25.254.78
DNS1=114.114.114.114
systemctl restart network
ping www.baidu.com ##可以ping通百度,可以上网
2.设置主机名
hostnamectl set-hostname squid.westos.com
3.配置yum源
cd /etc/yum.repos.d/
vim yum.repo
yum repolist
4.安装squid服务
yum install squid -y
systemctl start squid
5.修改配值文件
vim /etc/squid/squid.conf
56 http_access deny all改成 http_access allow all
62 cache_dir ufs /var/spool/squid 100 16 256 ##注释去掉
##缓存目录:100-->100M;
##16:16个目录;
##256-->在16个目录下每个目录都包含256个子目录
6.关闭火墙
systemctl stop firewalld.service
7.开启服务
ls /var/spool/squid/ ##开启之前没有内容
systemctl restart squid ##开启服务
ls /var/spool/squid/ ##会生成缓存目录,16个父目录,每个父目录下有256个子目录
ls | wc -l ##256个
在另外一个客户端(不可以上网),关闭火墙
ping www.baidu.com ##ping不通
在网页设置Edit---->Preferences----->Advanced—>Network---->Settings
----->Manual proxy coonfiguration----->HTTP Proxy:172.25.254.147 Port:3128
测试:
浏览器输入www.baidu.com ##可以浏览百度
ping www.baidu.com ##但是依然ping不通,只是用另外一台虚拟机做了缓存
二.反向代理
vim /etc/squid/squid.conf
59 http_port 80 vhost vport
60 cache_peer 172.25.254.147 parent 80 0 proxy-only
##172.25.254.147 代理主机的ip
##类型:parent:没有备用的代理
##80:服务端口号
##0:没有备用的端口
##proxy-only:只是代理
rpm -qa | grep httpd
systemctl restart squid
真机测试:
172.25.254.147这台虚拟机配置了apache,而172.25.254.247这台主机没有安装配置apache,可以通过反向代理,用户访问172.25.254.247时可以看到配置apache的主机的内容
vim /etc/hosts
把172.25.254.147修改成172.25.254.247