一、Apach的正向代理
场景:客户端无法直接连接Internet,可以通过代理服务器(一个跳板机),代理访问外部资源,返回客户端需要的数据!
客户端:明确所要访问的代理服务器,知道代理服务器的IP地址,还有代理程序的端口,所以称之为正向!
案例引入
问题:我是一个用户,我访问不了国外某网站,但是我能访问一个香港代理服务器,而这个代理服务器它能访问那个我不能访问的网站
过程:于是我先连上代理服务器,告诉代理服务器我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。
网站的角度:只在代理服务器来取内容的时候有一次记录,并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
实验环境的搭建
(1)server虚拟机可以连接网络--->可以连接百度
(2)desktop无法上网 --->无法连接百度
需求:dsktop通过server来连接Internet
测试1:客户端IP 172.25.2.103,目前ping www.baidu.com,也无法连接网络
测试2:Proxy提供代理服务,客户端和服务器端进行相应的配置,实现客户端连接网络
1)server安装代理服务软件
概念:Squid是一个高性能的代理缓存服务器,Squid支持FTP、HTTPS和HTTP等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
yum install squid.x86_64 -y
rpm -qc squid.x86_64 --->/etc/httpd/conf.d/squid.conf(CDN用的到)
squid:八爪鱼、枪乌贼、鱿鱼
2)服务器防火墙得允许通过服务和端口
netstat -antlupe |grep squid -->3128端口
firewall-cmd --add-port=3128/tcp
vim /etc/squid/squid.conf -->第56行(允许所有的人来访问我这台代理服务器)、创建缓存目录(62行)
systemctl restart squid
说明:squid服务启动前后查看缓存目录!
3)客户端的设置
说明:
(1)和代理服务器是一个WLAN或者通过网关的形式连接代理服务器
(2)客户端不需要设置DNS,因为所有的域名解析等都是Proxy在进行,可以理解为是代理服务器在地址栏中输入域名等!
客户端的Proxy代理设置
说明:这里以Firefox浏览器为案例
Edit-->Preferences-->Advice-->Network-->Settings-->Manual-->代理服务器的IP-->Port
说明:最好勾选所有的!
4)测试
说明:ping www.baidu.com仍然无法ping通,因为走的不是代理!
强调:客户端利用的是Proxy的缓存来访问!
现象2:同一个网页第二次的快,缓存的原因!
说明:省略了VPN(利用运营商来模拟网线的连接)!
二、Apach的反向代理
概念:客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理
特点:因为客户端不需要任何配置就可以访问!
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
需求引入:
腾讯服务器大本营在深圳,作为西安的一名腾讯游戏的资深玩家,我如果连接腾讯的服务器,势必要经过路由(NAT地址转换耗费时间),并且由于自己是以电话线连接,带宽太慢,感觉老实卡顿!
腾讯解决思路:在西安设立几台服务器,但是我不知道,因为连接的是深圳的服务器,其实是本地的服务器,但是体验更好!
模拟
(1)server作为反向代理服务器(腾讯放在西安的服务器) -->shenzhen.qq.com
(2)desktop作为资源主机(腾讯在深圳大本营服务器) -->xian.shenzhen.qq.com
(3)客户端(真机-->西安本地的用户) -->clent.qq.com
目标:真机访问server的资源!
案例:买烟(腿长短)
测试1:先测试客户端能不能直接访问远程服务器端
客户端:测试成功!
测试2:
说明:必须重启服务,systemctl restart squid,在这里犯了错误,代理服务器的防火墙开着的!
安装了Apach服务器的没有安装代理服务器,安装了代理服务器的没有安装Apach服务器!
核心:中间服务器必须开启80端口,加到防火墙上!
http_port 80 vhost vport [使用http主机作为虚拟主机]
cache_peer IP(深圳服务器的IP) parent(资源主机) 80(访问的端口) 0(没有备用的服务器) proxy-only(只作为代理服务器,不作为Web服务器)
说明:如果远程服务器的防火墙开启会出现如下的情况,建议关闭防火墙测试或者将http服务加到防火墙上
原理:客户端去访问代理服务器的IP,代理服务器会去腾讯总部去取数据,拿到squid缓存中,供客户端访问!
三、正向代理和反向代理的区别
三、论坛的搭建