集群--squid代理服务器..

  • web服务器的优化:

工作原理:客户访问动态资源,nginx代理到apache(nginx只有静态资源)。客户访问静态资源,nginx从disk获取被压缩了的静态资源(提高并发),因为图片和视频不能压缩,所以把视频和图片放到squid缓存服务器里,squid的源站是nginx,客户访问图片和视频,找squid服务器,squid向nginx要,下次客户访问同样的图片和视频就直接从squid缓存服务器里拿,不用再向nginx要。


  • SQUID工作原理:

SQUID会把缓存的数据放入磁盘中,在磁盘中建立二级目录(分区采用UFS),分别存储object(缓存文件),当然,它会把一些热数据放入缓存

  • SQUID工作流程:

cache(缓存)

  • SQUID取数据

hash tables:相当与目录,记录每个digest索引信息

digest tables:不同分区对应的object(缓存文件)的大概说明

  • 缓存服务器:

Varnish:采用内存分页技术,把所有的数据放入内存中,策略和SQUID完全不同

SQUID:可以给web服务器缓存一些图片视频等。也可以做CDN技术,当地的用户访问当地的缓存服务器。

CDN(内容分发网络):客户访问一个域名,智能DNS给客户一个离他最近的CDN站,CDN站找源站要数据,源站给把数据给CDN站,CND返回给客户端,再有一个客户端访问的话就直接把CND缓存的文件提供给客户端,不需要向源站要数据了。

三个核心点:智能DNS,缓存服务器(SQUID,Varnish,Nginx),资金

Nginx:用cache模块把nginx变成缓存服务器

  • 代理服务器基本类型:

1.传统代理:之前的网络,想要上网,必须使用代理服务器;需要明确指定服务端(被淘汰)

内网访问公网,内网浏览器需要添加代理服务器信息

如果是路由器的话,路由器只负责内外网互通,squid有缓存功能以及路由功能,缺点就是,必须要让内网用户指定代理服务器

2.透明代理:采用防火墙方案,将端口转换,让客户端不需要进行任何设置就可以通过squid访问公网,不需要使用路由器

内网访问公网,内网浏览器不需要添加代理服务器信息,而是用防火墙

如果是传统代理,内网用户必须要指定squdi的IP和端口3128,所以透明代理可以用防火墙技术把3128改为80,内网直接输入IP+端口就可以访问了,不需要指定代理服务器

 

3.反向代理:用于网站前端,就是缓存服务器工作方式

外网访问内网(web),

客户访问squid服务器,squid反向代理内网的web服务器数据返回给公网客户端,下一次公网客户端访问同样的数据时,squid直接返回数据,不需要再和后端的web服务器要数据了


  • SQUID软件介绍:

服务名:squid

主程序:/usr/sbin/squid

主配置文件:/usr/local/squid.conf

默认监听端口:TCP 3128号

默认访问日志:/var/log/squid/access.log

  • 配置文件介绍:/etc/squid/squid.conf

http port 3128 端口

access_log /var/log/squid/access.log squid 访问日志,访问日志的位置,身份是squid用户存储

cache_mem 64MB 最大能调用64MB的内存存储热数据(经常被访问的数据)

cache_dir ufs /var/spool/squid 100 16 256 把缓存放到目录里如何存储,目录文件系统是ufs,缓存的目录。

100(单个缓存用的最大空间是100MB)16(最多创建16个一级目录)256(最多创建256个二级目录)

visible hostname proxy.benet.com 指定当前自己的主机名

dns testnames   squid定期向域名发起请求,如果这两个域名能访问到,那么还在存活

maximum object size 4096KB  限制最大缓存大小(控制下载大小),超过限制不会保存至缓存服务器

reply body max size 10MB 限制访问大小(控制访问大小)

  • ACL访问控制列表

acl 列表名称 列表类型 列表内容(acl al src 0.0.0.0/0.0.0.0;http access deny al)先定义acl,然后对acl允许或拒绝(两部分)

列表类型:src源地址 dst目标地址 port目标端口 dstdomain目标域 time访问时间 maxconn最大并发连接

                  url_regex目标URL地址 (www.baidu.com/1.html 代表1.html不能访问)

                  Urlpath_regex 整个目标URL路径 (http://www.baidu.com/1.jpeg 代表1.jpeg不能访问)

注意:acl匹配自上而下依次匹配,匹配即停止

           如果定义了acl,但是没有对acl允许或拒绝(http access),默认拒绝

           如果定义了acl,但是没有对acl允许或拒绝(http access)并且http acces deny all被关闭,那么acl匹配会根据最后一条的                 http access进行反向操作

 

传统代理搭建:

内网通过添加的代理服务器去访问公网,客户端需要配置代理服务器(已经被淘汰,因为客户端不可能都会配)

环境准备:11主机是内网(客户端)                            192.168.66.11

                  12主机即有公网又有内网(squid服务器) 192.168.66.11、20.20.20.12

                  13主机是公网(web服务器)                     20.20.20.13

环境搭建:

11图形化主机:添加网关(让两个不同网段通信)

echo "GATEWAY=192.168.66.12" >> /etc/sysconf......;service network restart;route -n查看

12主机:开启路由转发(内网的数据包要发给公网,不开启就不会传递数据包);修改配置文件

①vim /etc/sysctl.conf

  ;sysctl -p

注意:这时候12主机访问13接收不到13返回的页面,因为12数据包能到13(公网),但是13的数据包不能返回给12,公网不能找到内网地址(因为公网没法配网关),所以需要snat转换,防火墙技术,之后会学习,现在用squid代理来访问

②vim /etc/squid/squid.conf

 开启缓存的东西放在哪个目录下

 指定当前服务器的主机名

13主机:下载httpd,并且开启,给网页文件写入123

  • 测试结果:

将11主机转换为图形化:init 5

打开火狐浏览器,配置代理服务器,打开首选项--高级--网络--设置

  • 验证第二次访问的数据确实是是squid里的缓存

关闭web服务器

还原虚拟机,再次设置代理

不同服务器都需要添加代理服务器信息才能访问到squid下的网页,所以要声明环境变量让elinks也能访问

在客户端打开配置文件/etc/squid/squid.conf:

   source /etc/profile

  • 测试:

透明代理:客户端不需要任何操作,只添加网关接口(dhcp自动分配)

内网通过防火墙改变的端口直接访问到外网,内网(客户端)不需要设置任何东西,直接就可以访问到外网

  • 环境准备:

11主机是客户机,添加网关

12主机是squid,要开启路由转发,设置两个IP,192.168.66.12;20.20.20.12

13主机是后端web,设置公网IP 20.20.20.13,下载apache

  • 12主机设置配置文件:

重启服务:service squid reload

启动防火墙:service iptables start ;清除防火墙规则:iptables -F

iptables -t nat -A PREROUTING -i eth0 -s 192.168.66.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128;iptables -t nat -L查看

service iptables save;chkconfig iptables on

  • 测试

用户下载限制大小 

  • 在apache主机写一个大文件

  • 在squid主机编辑配置文件

重启服务:service squid reload

  • 测试:

反向代理:相当与nginx七层代理

 

  • 环境准备:

11主机是客户机下载apache

12主机安装squid

13和14主机是apache服务器,添加网关

  • 13和14启动apache

指定网关(防止网页文件中域名需要解析):

  • 12主机编辑配置文件:

 指定真实服务器信息

 打开缓存目录

 公网地址允许访问squid 放行acl    

service squid start;chkconfig squid on

  • 测试轮询:

     

  • 测试缓存:

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值