Linux之:squid(正向代理与反向代理)

一.正向代理及反向代理的基本信息

1.squid的基本概念及其作用:

(1)squid定义:

squid是一种用来缓存internet数据的软件,接受来自人们需要下载的目标的请求并适当的处理这些请求。也就是说,如果客户端向要下载一web界面,他请求squid为他取得这个界面。squid随之连接到远程服务器并向这个页面发出请求,然后squid显示的聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一界面时,squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。

(2)squid的代理的作用:

当用户访问web网站时,会先访问代理服务器,squid代理服务器将数据缓存在自生内存中,并向用户反馈数据。
  • 大大减小web服务器的压力
  • 通过缓存的方式为用户访问web服务加速
  • 对用户访问进行一些控制过滤

二.正向代理

1.概念:

是位与客户端与原始服务器端之间的服务器,为了从原始服务器端获得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得内容返回给客户端。通俗来讲,在这种方式中,客户端是主动的,网站是被动的,网站那里得不到客户端的真实的ip。

2.正向代理的应用:

  • 访问原来无法访问的资源
  • 用作缓存,加速访问速度
  • 对客户端访问权限,上网进行认证
  • 代理可以记录用户访问记录,对外隐藏用户信息

3.正向代理的实现

(1)实验环境的搭建

  • 测试环境
真机 172.25.77.250
squid主机 172.25.77.102
apache主机 172.25.77.202

(2)在真实主机上连上wifi
在这里插入图片描述

  • 设置火墙伪装

在这里插入图片描述

  • 开启内核路由功能

在这里插入图片描述
(3)在squid主机

  • 关闭火墙

在这里插入图片描述

  • 设置网络,网关,实现虚拟机上网
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 配置yum源
    在这里插入图片描述

  • 安装squid
    在这里插入图片描述
    在这里插入图片描述

  • 编辑squid的配置文件

[root@dns ~]# rpm -qc squid    ##查看该软件的配置文件
[root@dns ~]# vim /etc/squid/squid.conf   ##编辑配置文件
编辑内容为:
56 http_access allow all    ##允许所有人使用squid
62 cache_dir ufs /var/spool/squid 100 16 256    ##允许缓存外网段

在这里插入图片描述
在这里插入图片描述
访问信息的目录的查看:

[root@dns ~]# systemctl start squid
[root@dns ~]# cd /var/spool/squid/
[root@dns squid]# ls

在这里插入图片描述
注:访问的信息在/var/spoll/squid目录下的16个主目录。每个主目录下面有256个子目录

(3)在apache主机端(测试)

  • 设置网络但是不设置网关
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 关闭火墙
    在这里插入图片描述
  • 在使用命令和在浏览器之中都无法连通网络

在这里插入图片描述
在这里插入图片描述

  • 添加代理服务器
在浏览器的页面:
Edit---->Preference---->Network---->settings

选择preference
在这里插入图片描述
选择advanced下面的network,并且点击最右边的settings设置
在这里插入图片描述
手动添加代理服务器,并设置端口为:3128
注:此处的ip为squid主机的ip
在这里插入图片描述

  • 在浏览器中输入百度网址,可以看到百度的页面,则说明正向代理成功,但是用命令是不可以ping通百度的
    在这里插入图片描述
    在这里插入图片描述
  • 去掉代理,在输入百度网址则不能访问
    选择 no proxy及不使用代理服务器
    在这里插入图片描述
    在这里插入图片描述

三.反向代理

1.反向代理的概念:

反向代理是指以代理服务器来接受internet的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

2.反向代理的实现

(1)实验环境

Desktop(ip:172.25.77.102) 为主服务端(可模拟为深圳
server(ip:172.25.77.202) 为代理端(可模拟为西安)
客户端(真机)

(2)在主服务端(desktop端)

syatemctl  start httpd   ##再安装好httpd以后打开服务即可
cd  /var/www/html
vim index.html

在这里插入图片描述
在这里插入图片描述
文件编辑内容为:
在这里插入图片描述

(3)在真机浏览器
访问时可以看到主服务器端的内容
在这里插入图片描述
(4)在server端(代理端)

[root@xiian ~]# yum install squid -y
[root@xiian ~]# vim /etc/squid/squid.conf
 56 http_access allow all
 59 http_port 80 vhost vport   设定端口为虚拟端口,为httpd的端口
 60 cache_peer 172.25.254.202 parent 80 0 proxy-only    ##父级的为Dekstop,ip为172.25.77.102,设置本机为代理
[root@xiian ~]# systemctl restart squid   ##重启
[root@xiian ~]# systemctl stop firewalld   ##关闭火墙

在这里插入图片描述
在这里插入图片描述
文件编辑内容为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)测试(在真机)
在浏览器:
http://172.25.77.102/(为主服务端,看到的仍是主服务端的http目录下发布的内容)
在这里插入图片描述
http://172.25.77.202/ (为设定的代理端服务器的ip,但是看到的是主服务端的httpd的默认发布目录下的内容)
在这里插入图片描述
则说明反向代理配置成功。

四.squid充当调度器建立轮询

在代理端(server端)

[root@xiian ~]# vim /etc/squid/squid.conf
编辑内容为:
 56 http_access allow all
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.254.202 parent 80 0 proxy-only name=web1 round-robin (轮询)   originserver(指定这个ip为httpd的服务源)  weight=2
 61 cache_peer 172.25.254.103 parent 80 0 proxy-only name=wed2 round-robin originserver
 62 cache_peer_domain web1 web2 www.westos.com(设定指定域名,方便测试)

在这里插入图片描述
weight表示轮询次数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
在真机:

[root@foundation2 ~]# vim /etc/hosts
172.25.77.202(代理端ip)   www.westos.com(添加域名)

在这里插入图片描述
在浏览器端:www.westos.com
分别可以看到俩端代理的内容,并且每俩次轮询一次

五.总结

1.正向代理与反向代理的相同点:
访问的走向都是:客户端—>代理服务器–>真实服务器—>代理服务器—>客户端

1.正向代理与反向代理的不同点:

正向代理:
正向代理语义上更侧重于让代理服务器去帮忙请求某个网址,让代理服务器去帮忙访问百度这些网站。
在这里由俩个特征:

  • 被访问的服务器只知道是代理服务器请求的,而不知道是用户请求的。
  • 用户可以明确的知道要请求的真实服务器
  • 客户端必须在浏览器设置代理服务器的地址和端口。(设置之后,意思就是说只要在这个浏览器上输入的网址,统统都丢给代理服务器区帮忙访问)

反向代理:
反向代理客户端只知道代理服务器的地址,而不知道真实的服务器。客户端只能被动的请求代理服务器,在由代理服务器去访问真实的服务器。
特征如下:

  • 客户端请求一个地址(比如代理服务器的地址),它并不知道这个是代理服务器地址还是真实的地址
  • 客户端不需要在浏览器中设置代理服务器

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/88125923