第11章 重定向器
重定向器是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的数据。每行包括下列四个元素,以空格分开:
例如: 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 |
squid第11章 重定向器
最新推荐文章于 2023-10-26 11:18:41 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)
原贴:http://www.opendigest.org/article.php/297