Linux中级(六)Proxy服务器

一、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缓存中,供客户端访问!

三、正向代理反向代理的区别

相关参考

三、论坛的搭建

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码是工作之余写的,代码分为转发服务器和代理服务器 先说转发服务器 转发服务器其实也可以说成是重定向服务器,比如转发服务器监听80端口,如果有浏览器用户访问服务器IP(浏览器默认请求80端口),转发服务器接收到浏览器用户的请求后,便把浏览器用户的请求重定向到本机的其它端口或者处于同一网段其它机器的指定端口 再说一下代理服务器 先说明一下,我这个代理服务器只能代理指定的网站或其它可以代理的客户,比如建在内网的SVN服务或者有些地方不能访问的外网网站。 代理服务器分为服务器端和客户端,服务器端需要运行在客户端和大家都能访问的外网上,客户端需要放在能访问到需要代理的客户的网络上,也可以放在客户的本机上。 用法: 解压proxy.tar.gz 进入proxy目录,然后make,会生成三个我们需要的程序,transmit(转发服务器)、manager(代理服务器端)、client(代理客户端) 服务器端用法: ./transmit [端口](比如80) ./manager [端口](随便指定) 客户端用法: ./client -i [代理服务器IP]:[端口] -t [客户IP]:[端口] -d [客户域名] 举例: 假如我的外网服务器IP为1.2.3.4,代理的客户为网易(网易域名:www.163.com,IP:202.108.9.33) 服务器端如下运行 ./transmit 80 ./mananger 8000 客户端如下运行 ./client -i 1.2.3.4:8000 -t 202.108.9.33 -d www.163.com 或 ./client -i 1.2.3.4:8000 -t 202.108.9.33:80 -d www.163.com 然后在本机hosts文件(windows是c:windowssystem32driversetchosts linux是/etc/hosts)填加如下一行 1.2.3.4 www.163.com 这时在浏览器里敲www.163.com就可以通过代理服务器访问网易了 当然如果客户是自己申请域名,就可以直接把自己的域名指向1.2.3.4,而不用修改本机hosts文件了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值