如何在squid 3中实现临时页面?

如何在squid 3中实现临时页面?

我正在尝试为所有客户端请求实现一个临时公告页面,这意味着该页面将在几秒钟后消失,URL 将返回到原始客户端请求。我还尝试了 perl 中的 url_rewrite_program(如下所示)和deny_info(&允许 localhost)acl,但都失败了。有人对此有更好的想法吗?我真的需要你的帮助。谢谢!

#!/usr/bin/perl
use strict;
use warnings;

my @X;
my $url="";

$| = 1;

while (<>)
{
  @X = split;
  $url = $X[0];
  print "302:http://announcement.txt\n";
  sleep 5;
  print "$url\n";
}

答案1

你有 squid,所以不要再尝试自己编写代码了,直接使用 squid 的内置启动页面功能。

来自 squid 页面的这个 3.2+ 示例将/etc/squid/splash.html每小时显示一次启动页面(请参阅该页面以获取更多示例和完整说明,包括 3.2 之前的 squid 示例):

# mind the wrap. this is one line:
external_acl_type splash_page ttl=60 concurrency=100 %SRC /usr/local/sbin/squid/ext_session_acl -t 7200 -b /var/lib/squid/session.db

acl existing_users external splash_page

http_access deny !existing_users

# Deny page to display
deny_info 511:/etc/squid/splash.html existing_users

相关内容