您的位置:首页 > 运维架构 > 反向代理

squid代理服务器(正向代理服务器、反向代理服务器(cdn加速)、squid调度器)

2019-08-12 09:50 3679 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/ranrancc_/article/details/99282983

文章目录

  • 三、反向代理服务器(企业服务器自己主动设定代理服务器的信息 )
  • 3.2 反向代理的配置
  • 3.3 squid调度器的实现(当企业中服务器的压力很大时,利用squid调度器来缓解负载均衡)
  • 一、squid代理服务器

    • Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议,和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
    • 实现功能:接受来自人们需要下载的目标的请求并适当地处理这些请求,也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求,然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
    • 当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议,但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

    二、squid正向代理(客户主动设定代理服务器的信息)

    2.1 什么是正向代理

    ==现象: == 客户端无法直接连接Internet,可以通过代理服务器(一个跳板机),代理访问外部资源,返回客户端需要的数据!

    客户端 :明确所要访问的代理服务器,知道代理服务器的IP地址,还有代理程序的端口,所以称之为正向!

    2.2 正向代理服务器的搭建

    问题: 我是一个用户,我访问不了国外某网站,但是我能访问一个香港代理服务器,而这个代理服务器它可以访问国外某网站。
    **过程:**于是我连接上代理服务器,告诉代理服务器我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。

    • 只在代理服务器来取内容的时候有一次记录,并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

    实验环境
    (1) 网络
    真机 ip=172.25.254.250
    desktop虚拟机 ip=172.25.254.125 可以连接网络—>可以连接百度




    server虚拟机 ip=172.25.254.225 无法上网 —>无法连接百度


    (2)yum源

    把desktop虚拟机当作一个squid代理服务器,让server虚拟机通过desktop虚拟机去使用真机的网关上网,真机相当于国外的一台服务器。desktop虚拟机相当于香港的一台客户端,操作都在desktop上面,server虚拟机相当于中国的一台客户端。

    在desktop虚拟机上

    (1)yum install squid -y 安装 squid 软件,将desktop虚拟机当作代理服务器。


    (2)开启服务,且开机自启动
    systemctl start squid 开启squid服务
    systemctl enable squid 设置squid服务是开机启动

    (3)netatat -antlupe | grep squid 查看squid使用的端口是3128端口

    (4)rpm -qc squid 查看squid的配置文件

    (5)==vim /etc/squid/squid.conf= 编辑squid配置文件
    第56行允许所有http连接
    第62行服务端口为3128
    允许别人把我当作代理服务器,缓存100M,要定期自动清理,16个一级目录,256个二级目录 ,

    (6)systemctl restart squid 重启服务 , 关闭防火墙

    (7)在虚拟机225上ping www.baidu.com依然不通

    (8)此时打开浏览器,设置代理主机信息后却可以上网,在浏览器中加入代理服务器125的信息,172.25.254.125 3128端口

    三、反向代理服务器(企业服务器自己主动设定代理服务器的信息 )

    3.1 反向代理是什么

    1、反向代理定义
    • **反向代理(Reverse Proxy)**实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
    • squid反向代理也叫cdn加速,利用squid代服务器,此时属于反向代理。
    • 客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问!
    • **西安的客户访问西安的服务器和深圳的服务器哪个更快?**访问西安的更快,原因:因为访问西安的服务器路由转发的个数少,而访问深圳的服务器路由转发次数多,所以深圳的企业在西安放置一个代理服务器,这个服务器没有资源,有需要的就去深圳的服务器上缓存,西安的这个服务器就是squid方向代理。用户直接访问西安的服务器,然后西安的服务器去深圳的服务器抓取,这样可以使深圳总部的服务器压力变小,也可以提高信息的传送速率和效率,这就叫做CDN资源分发。

    3.2 反向代理的配置

    真机是西安客户25
    西安服务器desktop虚拟机 125
    深圳总服务器虚拟机server 225

    在desktop虚拟机上
    (1)关闭125上的apache功能关闭

    (2)vim /etc/squid/squid.conf 编辑squid代理的配置文件,可以查看编写要求 vim /usr/share/doc/squid-3.3.8/squid.conf.documented

    httpd_port 80 vhost vport   利用80端口访问apache服务器资源,写入apache的虚拟主机和虚拟端口
    cache_peer   172.25.254.225   parent   80   0   proxy-only
    parent                    225是125的父级,提供资源
    80                         apache服务
    0                          此台代理服务器没有备用(合作伙伴)
    proxy-only             只作代理服务器


    (3) systemctl restart squid 重启服务 ,关闭防火墙

    在虚拟机server
    (1)查看虚拟机的httpd服务,并且开启

    (2)vim /var/www/html/index.html 编辑225的默认发布文件


    (3)重启httpd服务**systemctl restart httpd**

    (4) 在西安代理端125上的浏览器输入172.25.254.125就可以直接看到225上的资源

    在真机上测试 真机相当于客户,在真机里面做本地解析,进行测试,看真机是否可以通过desktop拿到server的共享资源。

    • 我在真机ping www.westos.com(显示解析是由172.25.254.125给的)。或者在浏览器里面输入172.25.254.125直接可以看到172.25.254.225深圳服务器apache下面的东西,相当于西安的用户去访问西安的代理服务器。或者在浏览器直接输入172.25.254.225也可以,相当于西安的用户直接访问深圳的服务器,或者在浏览器直接输入www.westos.com也可以,看到的也是深圳的东西,因为www.westos.com对应172.25.254.125,125没有资源,125去问225要东西,因此直接显示211下面共享出来的东西。

    3.3 squid调度器的实现(当企业中服务器的压力很大时,利用squid调度器来缓解负载均衡)

    • 当多个客户访问一台服务器的时候,服务器压力很多,需要另外一台服务器来帮助它均衡一下,可是客户端只访问一个ip,两个服务端的ip不一样,怎样让客户毫无察觉的在两台服务器上面访问一个企业的同一个资源,这时候就需要一个squid调度器,当第一个客户访问时,去找apache1,当第二个客户来访问时,去找apache2,这个实验需要三台主机,两台apache主机,一台squid主机。
    • 分别是125当作squid,225和224当作是apache1和apache2

    (1)vim /etc/squid/squid.conf

    http_access allow all
    http_port 80 vhost vport
    cache_peer 172.25.254.225 parent 80 0 proxy-only no-query round-robin originserver name=web1
    cache_peer 172.25.254.224 parent 80 0 proxy-only no-query round-robin originserver name=web2


    (2)重启squid服务125上

    在真机上测试: 在真机里面做本地解析,进行测试,看真机是否可以通过desktop拿到server的共享资源。
    (1)vim /etc/hosts 调度只能使用域名,ip不可以

    squid主机的ip   www.westos.com

    (2)firefox 输入www.westos.com

    给调度器添加权重

    (1)vim /etc/squid/squid.conf
    加入weight=2 表示 web1:web2的出现比率为2:1 ,即出现两次web1,出现一次web2

    (2)重启squid服务

    在真机上测试: 测试结果确实是出现两次Web1 出现一次Web2

    • 注意:实际在企业中两个apache服务器共享的内容是一样的,做实验不一样是因为方便看效果。这里的用户访问只能通过域名来访问,如果通过ip访问的话,就没有通过调度器而是直接访问,就没有负载均衡的作用了。
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: