php高级技术.doc_第1页
php高级技术.doc_第2页
php高级技术.doc_第3页
php高级技术.doc_第4页
php高级技术.doc_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大型WEB架构设计公网和虚拟机网络相连,除了要设置虚拟机相关网络时,如果公网的计算机是连接外面网络的,有可能公网和虚拟机网络不通,因为“本地连接”和VMnet1会冲突。网站运营总结1 大访问量2 大存储量3 访问速度4 服务器监控squid大访问量负载均衡:分流,将大量人群分流到不同服务器中去冗余:备份服务器,如果服务器崩溃,网站访问备份服务器,避免单点故障。让客户感觉不到服务器当机。负载均衡1 思科以太网通道2 windows NLB技术3 linux lvs负载均衡技术4 f5等负载均衡器5.nginx负载均衡冗余技术1 思科HSRP热备份路由2 windows集群技术3 linux HA集群技术4 IBM AIX集群1 Cisco HSRP热备份路由:网络层面冗余技术,网络线路冗余技术2,3,4为服务器冗余技术大数据存储1 大访问量如何解决2 大的数据存储如何解决3 网站加速如何去做4 服务器流量监控以及性能监控mysql主从mysql主从依赖bin-log日志技术增删改-主服务器查询,备份-从服务器分库分表:水平分表,垂直分表mysql分区技术mysql集群技术nosql-mongodb网站加速技术1 squid代理缓存技术2页面静态化缓存3 memcache4 sphinx搜索加速5. Varnish动态页面静态化1 (伪静态)apache服务器的mod_rewrite(URL重写),他是基于正则表达式解析器开发的重写引擎2 自己写的代码静态化a 创建FSO对象,利用此对象将所需的内容动态创建到文件中生成htmlb 利用模板技术c 利用Server.Transfer转换技术3 使用httpwebrequest请求客户端的方式,获取返回资源,生成静态页面memcache 存在内存中,如果服务器断电,内存的数据容易丢失sphinx全文索引网站服务,流量监控1 服务器监控1) apache web 服务监控2) mysql数据库监控3) 磁盘空间监控4) 网站流量监控mrtg cactiLinux邮件系统1 postfix发邮件系统2 sendmail发邮件系统3 dovecot发邮件系统2种监控报警方式mrtg+shell脚本 报警cacti+php脚本 报警apache压力测试1 apache 自带压力测试软件ab2 apache benchmark,apache基准测试工具mysql压力测试-mysqlslapmysql5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常简单LVS负载均衡负载均衡1.大量的访问或数据流量分担到多态节点设备分别处理,减少用户的等待时间2.单个重负载的运算分担到多态节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户网络数据转发原理物理层:通讯线路标准,网线的标准,线缆标准-网线,光缆,光纤数据链路层:帧的加封(在数据包外面加标记-mac地址-网卡的物理地址,两个标记,源mac地址和目标mac地址)和解封-交换机网络层:在数据外围加源ip地址和目标ip地址-路由器传输层:在原有的数据外围加标签-源端口和目的端口-tcp,udp会话层:通讯状态表示层:剩存的数据,是以什么样的编码来编码,编码方式由人在应用层的操作方式来决定的,由应用层决定怎么编码。应用层:http网卡的物理地址,刷在网卡里面,交换机通讯过程演示,看笔记这里不记ARP协议路由器工作在网络层,根据路由表转发数据,路由表中含有网段和接口交换机工作在数据链路层,根据mac地址表转发数据,mac地址表中含有mac地址和接口网络负载均衡1基于网络设备的负载均衡2 基于操作系统的负载均衡基于网络:思科交换机 F5负载均衡器基于操作系统:nlv(windows) lvs(linux)Nginx负载均衡私有ip私有IP就是在本地局域网上的IP 与之对应的是公有IP(在互联网上的IP)随着私有IP网络的发展,为节省可分配的注册IP地址,有一组IP地址被拿出来专门用于私有IP网络,称为私有IP地址。私有IP地址范围:A: 55 即/8B:55即/12C:55 即/16这些地址是不会被Internet分配的,它们在Internet上也不会被路由, 虽然它们不能直接和Internet网连接,但通过技术手段仍旧可以和 Internet通讯(NAT技术)。我们可以根据需要来选择适当的地址类,在内部局域网中将这些地址像公用IP地址一样地使用。在Internet上,有些不需要与 Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源LVS(Linux Virtual Server)要先安装ipvsadm,或者linux自带ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS)。是运行在LVS下的提供负载平衡功能的一种技术。IPVS基本上是一种高效的Layer-4交换机,它提供负载平衡的功能。Ipvs具体实现是由ipvsadm这个程序来完成ipvsadm 的用法和格式如下-A -add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。-C -clear 清除内核虚拟服务器表中的所有记录。-t -tcp-service service-address 说明虚拟服务器提供的是tcp 的服务-a -add-server 在内核虚拟服务器表中添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器-i -ipip 指定LVS 的工作模式为隧道模式-m -masquerading 指定LVS 的工作模式为NAT 模式-s -scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.-r -real-server server-address 真实的服务器Real-Server:port-g -gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式-dr模式)-w -weight weight 真实服务器的权值-L|-l -list 显示内核虚拟服务器表四种常用的轮叫负载算法1 轮叫(rr)调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群的真实服务器上,他均等的对待每一台服务器,而不管服务器上实际的链接数和负载2 加权轮叫(wrr)调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动询问真实服务器的负载情况,并动态的调整其权值3 最少链接(lc)调度器通过“最少链接”调度算法动态的将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小链接”调度算法可以较好的均衡负载4 加权最少链接(wlc)在集群系统服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能。具有较高权值得服务器将承受较大比例的活动连接负载,调度器可以自动询问真实服务器的负载情况,并动态的调整其权值Director:LVS服务器VIP:虚拟服务器的ipRIP:真实服务器的ip VS-NAT工作模式VS-TUN工作模式VS-DR工作模式内容服务器所在网络使用保留地址的LANWAN(或LAN也可)同一网段的LAN内容服务器的容量1020100100Linux网关起的作用网络地址转换IP隧道端点高速专用路由器网关对IP分组的操作双向重写单向隧道封装只转发不重写优点1.可以使用任何支持TCP/IP操作系统。2.物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器缺点1.数据来回都得通过负载均衡器,有瓶颈。2.防火墙不兼容:LVS的架构中,LVS的前端不能设置防火墙。这种方式需要所有的服务器支持IP Tunneling协议,要求负载均衡器的网卡必须与物理网卡在一个物理段上LAN:局域网 WAN:广域网VS NAT模式(Virtual Server Via Network addressTranslation)-NAT模式NAT模型:地址转换类型,主要是做地址转换,它通过多目标地址转换,来实现负载均衡;特点和要求:1、LVS(Director)上面需要双网卡:DIP(内网)和VIP(外网)2、内网的Real Server主机的IP必须和DIP在同一个网络中,并且要求其网关都需要指向DIP的地址3、RIP都是私有IP地址,仅用于各个节点之间的通信4、Director位于client和Real Server之间,负载处理所有的进站、出站的通信5、支持端口映射6、通常应用在较大规模的应用场景中,但Director易成为整个架构的瓶颈!配置LVS server引用#!/bin/sh# description: start LVS of NatVLAN-IP=10 /虚拟ip (公网)RIP1= /真实服务器 (内网)RIP2=#RIPn=10.1.1.nGW= /网关. /etc/rc.d/init.d/functionscase $1 instart)echo start LVS of NAtServerecho 1 /proc/sys/net/ipv4/ip_forward 开启路由转化功能echo 0 /proc/sys/net/ipv4/conf/all/send_redirectsecho 0 /proc/sys/net/ipv4/conf/default/send_redirectsecho 0 /proc/sys/net/ipv4/conf/eth0/send_redirectsecho 0 /proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)/不重要#Clear IPVS table/sbin/ipvsadm -C /ipvsadm -C 把以前所有的转化表清除#set LVS/sbin/ipvsadm -A -t 10:80 -s rr/sbin/ipvsadm -a -t 10:80 -r :80 -m -w 1/如果访问10:80转到上去/sbin/ipvsadm -a -t 10:80 -r :80 -m -w 1/如果访问10:80转到上去,这里1代表代表轮询一次#Run LVS/sbin/ipvsadm#end;stop)echo close LVS Nat serverecho 0 /proc/sys/net/ipv4/ip_forwardecho 1 /proc/sys/net/ipv4/conf/all/send_redirectsecho 1 /proc/sys/net/ipv4/conf/default/send_redirectsecho 1 /proc/sys/net/ipv4/conf/eth0/send_redirectsecho 1 /proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)/不重要/sbin/ipvsadm -C;*)echo Usage: $0 start|stopexit 1esac配置real serverLVS-Nat 模式的后端机器不需要配置.LVS IP TUN模式-IP隧道模式LVS和Real-server不需要在一个网段:隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS(真实服务器),RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器配置lvs server引用#!/bin/sh# description: start LVS of DirectorserverVIP=1(注意,lvs server那台机器2个ip,一个是vip,一个是本身ip例如2)RIP1=4 /真实服务器RIP2=5#RIPn=192.168.0.nGW=54 /网关. /etc/rc.d/init.d/functionscase $1 instart)echo start LVS of DirectorServer# set the Virtual IP Address/sbin/ifconfig tunl0 $VIP broadcast $VIP netmask up/sbin/route add -host $VIP dev tunl0 /设置lvs服务器vip,并将其添加到路由表#Clear IPVS table/sbin/ipvsadm -C /ipvsadm -C 把以前所有的转化表清除#set LVS/sbin/ipvsadm -A -t $VIP:80 -s rr/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i#/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i#Run LVS/sbin/ipvsadm#end;stop)echo close LVS Directorserverifconfig tunl0 down/sbin/ipvsadm -C;*)echo Usage: $0 start|stopexit 1esac.配置real server引用#!/bin/sh# ghb in 20060812# description: Config realserver tunl port and apply arp patchVIP=3. /etc/rc.d/init.d/functionscase $1 instart)echo Tunl port startingifconfig tunl0 $VIP netmask broadcast $VIP up/sbin/route add -host $VIP dev tunl0/给第一台真实服务器设置vip并将其添加到路由表echo 1 /proc/sys/net/ipv4/conf/tunl0/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/tunl0/arp_announceecho 1 /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/all/arp_announce/arp_ignore arp忽略 不回应 arp_announce 回应arpsysctl -p;stop)echo Tunl port closingifconfig tunl0 downecho 1 /proc/sys/net/ipv4/ip_forwardecho 0 /proc/sys/net/ipv4/conf/all/arp_announce;*)echo Usage: $0 start|stopexit 1esacarp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求 1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求 2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内 3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应 4-7 - 保留未使用 8 -不回应所有(本地地址)的arp查询arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址 1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.ifconfig tunl0 0 netmask 55 up这里是TUNL 0不是 TUN10 代表第一个tun-ip。他的ip是0,子网掩码55。如果子网掩码是55,代表这个网段里面只有他自己。一个计算机多个网卡不能配置在同一个网段。route add -host 0 dev tunl0给路由器人为加一个路由表数据,从而将0加入到路由器的路由表中要在lvs服务器上安装sadm的软件才能使用ipvsadmipvsadm -C清除所有转换表ipvsadm -A -t 0:80 -s rr轮叫模式ipvsadm -a -t 0:80 -r -i如果访问0转到上去ipvsadm -a -t 0:80 -r -i如果访问0转到上去ipvsadmLVS DR模式-直接路由模式(调度器与实际服务器都有一块网卡连在同一物理网段上)负载均衡器(DR)和RS(真实服务器)都使用同一个IP对外服务但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台 RS这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端 由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上上面看不懂,增加下面实例场景设备清单:说明:我这里为了方便,client是与vip(负载均衡器)同一网段的机器。如果是外部的用户访问,将client替换成gateway即可,因为IP包头是不变的,变的只是源mac地址。client向目标vip发出请求,Director接收。此时IP包头及数据帧头信息如下: VS根据负载均衡算法选择一台active的realserver(假设是22),将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里。此时IP包头及数据帧头信息如下:realserver(22)在局域网中收到这个帧,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网。此时IP包头及数据帧头信息如下:如果client与VS同一网段,那么client(35)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。(总结:改变数据ip报头(mac)从负载均衡器变真实服务器)特点和要求1、各个集群节点必须和Director(LVS服务器)在同一个物理网络中2、RIP地址不能为私有地址,可以实现便捷的远程管理和监控3、Director仅仅负责处理入站请求,响应报文则由Real Server直接发往客户端4、集群节点Real Server 的网关一定不能指向DIP,而是指向外部路由5、Director不支持端口映射6、Director能够支持比NAT多很多的Real Server配置LVS server引用#!/bin/shVIP=10RIP1=75RIP2=45. /etc/rc.d/init.d/functions case $1 in start) echo start LVS of DirectorServer #Set the Virtual IP Address /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 55 up /sbin/route add -host $VIP dev eth0:1 / 设置lvs服务器vip并将其添加到路由表中 #Clear IPVS Table /sbin/ipvsadm -C #Set Lvs /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g #Run Lvs /sbin/ipvsadm ; stop) echo close LVS Directorserver /sbin/ipvsadm -C /sbin/ifconfig eth0:1 down ; *) echo Usage: $0 start|stop exit 1 esac配置 RIP server引用#!/bin/bashVIP=10LOCAL_Name=50bangBROADCAST=55 #vips broadcast. /etc/rc.d/init.d/functionscase $1 in start) echo reparing for Real Server echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_announce ifconfig lo:0 $VIP netmask 55 broadcast $BROADCAST up /sbin/route add -host $VIP dev lo:0 / 设置真实服务器vip并将其添加到路由表中 ; stop) ifconfig lo:0 down echo 0 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 /proc/sys/net/ipv4/conf/lo/arp_announce echo 0 /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 /proc/sys/net/ipv4/conf/all/arp_announce ; *) echo Usage: lvs start|stop exit 1esacLvs dr 使用规划设置vip脚本directorserver vip=0realserver realserver 关于网段的知识网段由ip地址和子网掩码计算而成,第一行为ip地址的二进制,第二行尾子网掩码二进制,第三行为计算出来的网段(10进制)。运算为余运算。只有两者为1才能得1,否则一律为0。不同网段必需有路由器才能通讯不同网段之间通讯要用路由器squid上网两种方式nat技术 基于源的地址转换 通过路由器地址转换代理技术 不用开启路由管道 更安全路由管道:网卡之间的路由通道squid服务器的功能1 提供http和ftp协议的代理服务(应用层)2 缓存代理的内容,提高客户端访问网站的速度,并能够节约出口网络流量3 对客户端地址进行访问控制,限制允许访问squid服务器的客户机4 对目标地址进行访问控制,限制客户端允许访问的网站5 根据时间进行访问控制,限定客户端可以使用代理服务的时间squid缓存代理的作用1 通过缓存的方式为用户提供web 访问加速2 对用户的web访问进行过滤控制普通代理服务需要在客户浏览器中指定代理服务器的地址,端口透明代理服务使用于企业的网关主机客户机不需要指定代理服务器地址、端口等信息通过iptables将客户机的web访问数据转交给代理服务程序处理第一行:acl列表叫LAN1 源ip网段为/24第二行:acl列表叫PC1 源ip为6的主机第三行:acl列表叫Blk_Domain 目的域名为 . .第四行:acl列表叫Work_Hours 时间类型为MTWHF(周一到周五)8:30-17:30第五行:acl列表叫Max20_Conn 最大连接数20个第六行:acl列表叫Blk_URL -i 忽略大小写 以rtsp:/开头 以mms:/开头第七行:acl列表叫Blk_Words 网址里面含sex adult 第八行:acl列表叫RealFile 网址里面包含.rmvb结尾 .rm结尾acl命令记在其他文件中leonardlocalhost $ ls -l-rw-rw- 1 leonard admin 0 Jul 3 20:12 test.txt在这里说明了对于test.txt这个文件leonard用户(由于是file owner)拥有read & write权限. 所有属于admin 组的用户(group)拥有read & write 权限. 其他任何用户(other)对于文件没有任何的权限如果我们现在希望john这个用户也可以对test.txt文件进行读写操作. 我自己大概会想到以下几种办法 (这里假设john不属于admin group)1. 给文件的other类别增加读和写的权限. 这样由于john会被归为other类别,那么他也将拥有读写的权限。2. 将john加入到admin group. 那么john会被归为group类别,那么他将拥有读写的权限。3. 设置sudo, 使john能够以leonard的身份对test.txt进行操作,从而获得读写权限。第一种做法的问题在于所有用户都将对test.txt拥有读写操作,显然这种做法不可取。第二种做法的问题在于john被赋予了过多的权限.所有属于admin组的文件,john都可以拥有其等同的权限了。第三种做法虽然可以达到只限定john用户一人拥有对test.txt文件的读写权限.但是需要对sudoers文件进行严格的格式控制. 而且当文件数量和用户很多的时候,这种方法就相当地不灵活了。看来好像都没有一个很好的解决方案. 其实问题就出在Linux 文件权限里面,对于other的定义过于广泛,以至于很难把权限限定于一个不属于file owner和group的用户身上. 那么Access Control List (ACL)就是用来帮助我们解决这个问题的。简单地来说ACL就是可以设置特定用户或者用户组对于一个文件/文件夹的操作权限. 需要掌握的命令也只有三个: getfacl, setfacl, chaclACL 是由一系列的Access Entry所组成的. 每一条Access Entry定义了特定的类别可以对文件拥有的操作权限. Access Entry有三个组成部分: Entry tag type, qualifier (optional), 权限我们先来看一下最重要的Entry tag type, 它有以下几个类型ACL_USER_OBJ: 相当于Linux里file_owner的权限ACL_USER: 定义了额外的用户可以对此文件拥有的权限ACL_GROUP_OBJ: 相当于Linux里group的权限ACL_GROUP: 定义了额外的组可以对此文件拥有的权限ACL_MASK: 定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限 (这个我下面还会专门讨论)ACL_OTHER: 相当于Linux里other的权限rootzyq-server data# getfacl test.txt# file: test.txt# owner: root# group: familyuser:rw-user:zyq:rw-group:rw-group:jackuser:rw-mask:rw-other:-前面三个以#开头的定义了文件名,文件所有者和文件拥有组. 这些信息没有太大的作用,我们可以用 -omit-header来省略掉user:rw- 定义了ACL_USER_OBJ, 说明file owner拥有读和写的权限user:zyq:rw- 定义了ACL_USER,这样用户zyq就拥有了对文件的读写权限,实现了我们一开始要达到的目的group:rw- 定义了ACL_GROUP_OBJ,说明文件的group拥有read和write 权限group: jackuser:rw- 定义了ACL_GROUP,使得jackuser组拥有了对文件的read 和write权限mask:rw- 定义了ACL_MASK的权限为read and writeother:- 定义了ACL_OTHER的没有任何权限操作此文件我们先让用户zyq拥有对test.txt文件的读写权限代码:rootzyq-server data# setfacl -m u:zyq:rw test.txt接下来我们来设置jackuser组拥有read 权限rootzyq-server data# setfacl -m g:jackuser:r test.txthttp_port : 在:3128端口上开启代理,3128是我的代理端口,通过此端口上网cache_mem: squid内存最大值maximnum_object_size: 一个缓存对象最大值reply_body_max_size 10480000 allow all : 客户通过代理服务器去外面下载东西最大的数据文件大小为10M。access_log: 日志visible_hostname:cache_dir ufs : 缓存目录 缓存数据大小100M 创建16个一级目录 每个一级目录有256个二级目录普通squid代理服务器192是私有ip。200是公有ipacl功能为匹配acl innet src /24acl列表,列表名叫innet,代理来自这个网段的所有人。acl all src /来自所有客户机的acl列表叫all/代表所有ip http_access allow innet 允许innet列表上网http_access deny all 拒绝all列表上网普通代理需要配置浏览器透明代理不需要配置浏览器配置透明代理基本步骤1 修改squid.conf配置文件http_port :3128 transparent2 重新加载该配置squid -k reconfig3 添加iptables规则,把内部的http请求重定向到3128端口iptables -t nat -A PREROUTING -i eth0 -s /24 -p tcp -dport80 -j REDIRECT -to 31284 内部用户不需要在浏览器中设置代理,只需要设置网关transparent:透明REDIRECT :重定向squid服务器-编辑上节课squid的配置文件squid服务器-端口重定向squid反向代理虚拟的80端口squid服务器-两块网卡ip配置webserver服务器-squid服务器-进入squid配置目录squid服务器-squid的配置文件内容重新加载配置文件1.jpg的响应信息命中这个缓存池命中squid缓存池squid服务器-进入缓存目录工作原理:客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB服务器的域名都 指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者ASP之类 的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。有四个最重要HTTP头标记:Last-Modified: 告诉反向代理页面什么时间被修改 Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 Cache-Control: 告诉反向代理页面是否应该被缓冲 Pragma: 告诉反向代理页面是否应该被缓冲.每一部 Squid 代理服务器上有若颗硬盘,每颗硬盘又分割成多个 patition,每一个 partition 又可建立很多目录(例如:二阶层 64x64 个目录),目录下才放文件( Squid 把它叫 object)。 一. Hash Table 和 Digest Table Squid 的工作太忙了,如果每一个用户端想要的资料,都经过硬盘的文件配置表去拿,速度较慢;所以 Squid 启动之後,会在 RAM (内存)建立一个 Hash Table,记录硬盘中 object 配置的情形。Squid 又在 RAM 中建立一个 Digest Table(摘要表) ,其功能是和其他有合作关的 Squid (Sibling:同级)互相交换 Digest Table,万一用户端想要的资料自己没有时,可以很快的知道哪一部 Squid Server 有资料(Squid 也可以透过 ICP 向其他 Squid 查询,但速度较慢)。但是 Digest Table 本身不小,如果 Server 的内存不够,对外网络带宽不够,反而比 ICP 查询更慢。 二. Child、Parent 和 Sibling Squid Server 之间的第一种关系是:Child 和 Parent。当 Child Squid Server 没有资料时,会直接向 Parent Squid Server 要资料,然後一直等,直到 Parent 给它资料为止。 Squid Server 之间的第二种关是:Sibling 和 Sibling。当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要或上 Internet 去拿。 三. 一般 Squid Server 运作的模式是:1. 当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要。2. 向 Parent 要资料,然後一直等,直到 Parent 给它资料为止(Parent 自己有的资料或上 Internet 去拿)。3. 没有 Parent 时,就自己上 Internet 去拿。4. 如果这三者都拿不到资料,才向用户端回报拿不到资料。 一般而言,把网路上一层的 Squid Server 设成 Sibling 是不错的选择(例如:一个学校将所在城市网和附近的大学设成 Sibling),因为网路上一层的 Squid Server 服务对象较多,其硬件功能较强,离我们比较近,速度也比较快;万一要不到资料,我们还可以自己上 Internet 去拿。那什麽时候设 Parent?当您的出口只有一个,或上一层 Squid Server 拿不到资料,自己也一定拿不到,只好将上一层 Squid Server 设为 Parent。加入webserver里面放 两个不同域名的网站这是windows系统的配置,把域名localhost解析成。这是客户端自己的电脑windows系统。所以localhost可以访问本地网站,同理后两行意思是把那两个域名解析成squidserver的ip。MYSQLMySQL g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论