squid第11章 重定向器

本章节聚焦于Squid缓存代理中的重定向功能,详细讲解如何配置和使用Squid实现网页内容的自动重定向。教程适合初学者,以轻松幽默的方式引导读者掌握核心技术。
摘要由CSDN通过智能技术生成
                原贴:http://www.opendigest.org/article.php/297

                
           
            第11章 重定向器           
  • 11.1 重定向器接口               
    • 11.1.1 处理包含空格的URI 
    •                    
    • 11.1.2 产生HTTP重定向消息
    •                
  •                
  • 11.2 重定向器示例 
  •                
  • 11.3 重定向器池 
  •                
  • 11.4 配置Squid               
    • 11.4.1 redirect_program 
    •                    
    • 11.4.2 redirect_children 
    •                    
    • 11.4.3 redirect_rewrites_host_header 
    •                    
    • 11.4.4 redirector_access 
    •                    
    • 11.4.5 redirector_bypass
    •                
  •                
  • 11.5 流行的重定向器               
    • 11.5.1 Squirm 
    •                    
    • 11.5.2 Jesred 
    •                    
    • 11.5.3 squidGuard 
    •                    
    • 11.5.4 AdZapper
    •                
  •            
           

重定向器是squid的外部程序,它重写来自客户请求的URI。例如,尽管某个用户请求这个页面:http: //www.example.com/page1.html ,重定向器可以将请求改变到别的地方,例如:http://www.example.com/page2.html 。squid自动抓取新的URI,就像是客户端的原始请求一样。假如响应可被缓存,squid将它存储在新的URI下。

           

重定向功能允许你执行与squid相关的许多有趣事情。许多站点使用它们实现如下目的:访问控制,移除广告,本地镜像,甚至用以绕开浏览器的bug。

           

关于使用重定向器进行访问控制的好处之一是,你可以将用户的请求重定向到某个页面,这个页面详细解释为何她的请求被拒绝。你也会发现重定向器比squid内建的访问控制提供更多的弹性。然而不久你会看到,重定向器并不能访问包含在客户请求里的完整信息。

           

许多人使用重定向器来过滤web页面广告。大部分情形下,可以将对GIF或JPEG广告图片的请求,改变为请求位于本地服务器上的,小而空的图片。这样,广告就消失了,然而不会影响页面布局

           

所以在本质上,重定向器其实就是一个程序,它从标准输入里读取URI和其他信息,并将新的URI写往标准输出。Per和Python是写重定向器的流行语言,尽管某些作者使用编译性语言(例如C)以求更好的性能。

           

Squid的源代码没有包含任何重定向程序。作为管理员,你有责任编写自己的重定向器,或者下载别人编写的。该章开头部分描述在squid和重定向 进程之间的接口。我也提供几个简单的Perl重定向器示例。假如你志在使用别人的重定向器,而不是自己编写,请跳到11.3章。

           

11.1 重定向器接口

           

重定向器在其标准输入里,每次一行的接受来自squid的数据。每行包括下列四个元素,以空格分开:

           
  • 1)请求URI

  •                
  • 2)客户IP地址和完全可验证域名

  •                
  • 3)用户名,通过RFC 1413 ident或代理验证

  •                
  • 4)HTTP请求方式
  •            

例如:

           
http://www.example.com/page1.html 192.168.2.3/user.host.name jabroni GET
           

请求URI取自客户请求,包括任何查询条件。然而,分段标记(例如#字符和随后的文本)被移除了。

           

第二个元素包含客户IP地址,和可选的完整可验证域名(FQDN)。假如激活了log_fqdn指令或使用了srcdomain ACL元素,FQDN才会设置。尽管那样,FQDN也许仍未知,因为客户网络管理员没有在其DNS里正确的设置反向指针区域。假如squid不知道客户的 FQDN,它用一个短横线(-)代替。例如:

           
http://www.example.com/page1.html 192.168.2.3/- jabroni GET
           

假如squid了解请求背后的用户名&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值