2009-04-07 127 views
1

当用户首次通过squid代理服务器启动 会话时,是否可以向用户发送自定义HTML消息?发送消息给Squid代理用户

我希望能够首先请求重定向用户"的 日的"消息....然后在该 会去的剩余他们的浏览请求,没有其他被重定向.... 详细步骤:

  1. 用户打开浏览器。 (浏览器配置为使用Squid代理)
  2. 用户打开http://google.com(自己选择的或其他网址)
  3. ,而不是领Google.com,他们将被重定向到http://somewhere.else.com/MOD.html
  4. 用户读取MOD
  5. 用户类型http://google.com再次(或他们选择的其他网址)这一次 浏览器在没有重定向的情况下转到正确的目的地。

我将不得不开发或定位Squid代理服务器插件来执行此 样的动作或者是这个东西Squid服务器可以用一点点定制 代码办? (Perl等)

回答

3

在squid conf中有一行可以像redirect_script一样添加。编写一个需要输入的Perl程序 - 每行一个URL。它输出你要重定向用户的网址。 UpsideDownTernet脚本就是一个例子。

现在更改脚本以便第一次输出您的MOTD,并且每隔一段时间只回显URL。

问题是,你如何区分用户请求?那么在这一点上,你需要使用一个redirect_program行,而不是redirect_script ...

鱿鱼将在几个参数传递给程序:

URL ip-address/fqdn ident method 

URL is the URL requested 
ip-address/fqdn is the IP address or fully qualified domain name of the client (web browser) which requested the page. 
ident is the identity of the user running the web browser. Unless you configure squid to do ident lookups, this will be "-". 
method is the request method: "GET", "POST", "HEAD" 

参考:http://taz.net.au/block/

在这一点上,你可以修改你的脚本以确定每个用户在看到MOTD之间(例如,如果他不访问一个网站12个小时,他收到消息)或任何其他用户之间的“超时”。

+0

你可以通过“你需要使用redirct_program行而不是redirect_script来激发你的意思......” – Hortitude 2009-04-28 16:56:44

+0

当然,鱿鱼有两个配置选项:redirect_script和redirect_program。以下是redirect_program的更多信息http://www.visolve.com/squid/squid24s1/externals.php我认为redirect_script是redirect_program的“宝贝”版本,它的参数较少。 现在我已经搜索了更多,它可能只是彼此的别名;我必须检查来源。 – 2009-04-28 17:47:33