Cześć,
Od kilku dni męczę się z uruchomieniem komunikatów przez squid_redirector na nowszych wersjach squid 3.4 lub 3.5
Proxy działa konfiguracja ok, tyle że lms-squid nie jest kompatybilny z nowym squid i objaw jest taki, że do url dokleja coś w stylu "URL /172.16.255.99/--GETmyip=141.105.20.134myport=80"
Z tego co się zagłębiłem chodzi o to, że squid w nowej wersji używa innej składni url_rewrite, podejrzewam, że wystarczy prosta zmiana w squid_redirector lub w konfiguracji url_rewrite_extras na squid, ale nie udaje mi się i pomału ręce opadają.
Ktoś z Was ma może to ogarnięte?
W dniu 22.07.2017 o 15:38, Sebastian Szczepański pisze:
Cześć,
Od kilku dni męczę się z uruchomieniem komunikatów przez squid_redirector na nowszych wersjach squid 3.4 lub 3.5
Temat rozwiązany może się komuś przyda, dla squid 3.4 i nowszych trzeba zmodyfikować lms-squid
#!/usr/bin/perl # # LMS version 1.11-git # # (C) 2001-2013 LMS Developers # # Please, see the doc/AUTHORS for more information about authors! # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License Version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # USA. # # $Id$
use DBI; use Config::IniFiles;
my $configfile = '/etc/lms/lms.ini';
$|=1;
my $ini = new Config::IniFiles -file => $configfile; print @Config::IniFiles::errors;
my $dbtype = $ini->val('database', 'type') || 'mysql'; my $dbhost = $ini->val('database', 'host') || 'localhost'; my $dbuser = $ini->val('database', 'user') || 'root'; my $dbpasswd = $ini->val('database', 'password') || ''; my $dbname = $ini->val('database', 'database') || 'lms'; my $redirect = $ini->val('redirector', 'redirect') || 'http://www.lms.org.pl/';
while ($adres = <STDIN>) { if ((!defined($dbase))||($dbase->state)) { if($dbtype =~ /mysql/) { $dbase = DBI->connect_cached("DBI:mysql:database=$dbname;host=$dbhost","$dbuser","$dbpasswd", { RaiseError => 1 }); } elsif($dbtype eq "postgres") { $dbase = DBI->connect_cached("DBI:Pg:dbname=$dbname;host=$dbhost","$dbuser","$dbpasswd", { RaiseError => 1 }); } else { print STDERR "Fatal error: unsupported database type: $dbtype, exiting.\n"; exit 1; } $dbq = $dbase->prepare_cached("SELECT access,warning FROM vnodes WHERE ipaddr=INET_ATON(?)"); } @lista = split(' ', $adres); @ip = split('/', $lista[1]); $dbq->execute($ip[0]); my $row = $dbq->fetchrow_hashref(); if ($row->{'warning'}==1 || $row->{'access'}==0) { if (!($lista[0] =~ m/$redirect/)) { $lista[0] = $redirect."?oldurl=".$lista[0]; $adres = '302:'.$lista[0]."\n"; } } else { $adres = $lista[0]."\n"; } print $adres; }
$dbq->finish if defined $dbq; $dbase->disconnect() if defined $dbase;
uczestnicy (1)
-
Sebastian Szczepański