Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
正向代理:
A 不能访问 B,但C可以访问B , A通过C来访问B
实验环境:3台主机:真机,虚拟机server服务器,虚拟机客户端。
1.真机可以上网
2.虚拟机服务器server进行网络配置,并设置网关为真机IP,客户端网络配置
3.真机打开火墙,两台虚拟机关闭火墙。
4.server服务器做DNS解析:vim /etc/resolv.conf
写入nameserver 114.114.114.114
在服务器上:
yum install squid -y ###安装代理服务
systemctl start squid
netstat -antlupe | grep squid ###默认使用3128端口
vim /etc/squid/squid.conf ###编辑squid配置文件
http_access deny all 改为 allow all ###允许http
cache_dir 取消注释,当访问时建立缓存。16个一级目录,256个二级目录,100为缓存的大小
systemctl restart squid ###改完后重启配置文件
cd /var/spool/squid
ls ###里面为生成的目录
ping 114.114.114.114 或者 ping www.baidu.com ###此时服务端可以ping通
测试端:
设置网络
网页上做更改:edit > preferences > Advancer> network > settings > Manual proxy configuration: Use this proxy… 【填服务端IP ,端口号 3128】
www.baidu.com ###浏览器可以直接上网,但是ping不通
更改完成后,依旧无法ping通外网,但却可以直接浏览网页。
反向代理:
CDN的全称是Content Delivery
Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
client西安客户访问某网址,西安的代理服务器上没有内容,然后西安的代理服务器向深圳的服务器缓存内容,再将缓存发给客户。客户不关心访问了哪台主机,是代理服务器自己去访问。
环境准备:三台pc,因为真机已经有htpp,所以我们用真机做总服务器,用上面的sever继续做代理服务器,用刚才的客户端做测试用户PC
代理服务器:
vim /etc/squid/squid.conf
http_port 80 vhost vport ###apache使用80接口,支持vhost虚拟主机,vport虚拟接口
cache_peer 172.25.254.199 parent 80 0 proxy-only ###跳转
systemctl restart squid ###重启squid服务
真机:有apache,有数据的服务器:
yum install httpd -y ###下载apache【有就不用下了】
systemctl start httpd ###开启服务
cd /var/www/html/
vim index.html ###写入数据,之后访问时可以看到【】默认发布文件
systemctl restart httpd
systemctl stop firewalld ###关闭火墙
vim /etc/hosts
172.25.254.12 xyy.ser.com ###写入真机解析
测试:
虚拟机客户端,将正向代理时的网页设置更改回来,然后再测试:
测试:我们测试客户端IP:172.25.254.100 写入解析:代理服务器ip xyy.server.com
没有数据的代理服务器ip:172.25.254.200
有数据有apache的真机IP:172.25.254.12
我们访问没有数据的代理服务器,它会自动从有数据的真机中获得答案,显示给我们。
在测试机浏览器访问:【也可以访问域名xyy.server.com】
大大的小小阳