|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksey Barabanov 2:5020/400 04 Feb 2002 01:08:06 To : Balabhai Viktor Nikolaevich Subject : Re: redirector -------------------------------------------------------------------------------- Balabhai Viktor Nikolaevich писал(а): > > Hello Evgeny & All. > > > Evgeny Annenkov wrote: > > > Человеки, помогите поставить редиректор - хочу рекламу красиво рубать, а > > > не как сейчас. > > > Пытаюсь прикрутить к сквиду редиректор, чтобы он баннеры на прозрачный > gif > > > подменял. > > > в squid.conf > > > redirect_program /usr/local/squid/bin/redirector > > > > > > Положил туда сам редиректор. Примерно такой: > > > http://linuxnews.ru/redirector > > > === Cut === > > > #!/usr/bin/perl > > > $0 = 'redirect' ; > > > $| = 1 ; @banners = ('reklama\.ru/cgi-bin/banner/', Так не надо. Правильнее хеш. Хотя хозяин - барин. > > > > > > skip > > > > > > 'yandex\.ru/cycounter' > > > ); while (<>) { > > > ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ; > > > $url = 'http://linuxnews.ru/images/1x1.gif' > > > if grep ($url=~/$_/i, @banners) ; Perl.Библиотека программиста. Стр.135. Раздел "Комментарий" второй абзац: "Одна из распространненых ошибок - использование функции grep. Дело в том, что grep проверяет все элементы и находит все совпадения; если вас интересует только первое совпадение, этот вариант неэффективен." Мастер все сказал, я только процитировал ;) > > > print "$url $who $ident $method\n" ; Здесь надо просто напечатать или тот url, который был или новый, на который вы редиректите. Все остальное не надо, кроме \n. > > > } > > > === Cut === > > > > > > ./squid -k reconfigure > > > > > > И вижу: > > > === Cut === > > > Jan 18 16:15:35 artem (squid): Too few redirector processes are running > > > Jan 18 16:15:39 artem (squid): Too many queued redirector requests > > > Jan 18 16:15:45 artem (squid): Too many queued redirector requests > > > Jan 18 16:15:53 artem (squid): Too few redirector processes are running > > > Jan 18 16:16:00 artem (squid): Too many queued redirector requests > > > Jan 18 16:16:07 artem (squid): Too many queued redirector requests > > > Jan 18 16:16:07 artem squid[8016]: Exiting due to repeated, frequent > > > failures === Cut === > > > И отваливается. > > А сколько у тебя процессов редиректорских запускается? Попробуй увеличить. > Параметр redirect_children в squid.conf. IMHO 5 (default) маловато. Особенно > для перлового редиректора. Hо ещё, конечно, зависит от количества клиентов. > Поставь побольше, а более точно сможешь определить потребности, запустив > `client cache_object://localhost/redirector`. Чешуя! Hадо программы писать не левой ногой. Выкинте все инициализации из цикла. Для сравнения используйте не массив, а хеш. Убедитесь, что цикл вообще завершается ;) А лучше взять готовое и под себя перепилить. У меня пускается не более 3 редиректоров. И если я еще и запускаю отладочный лог из редиректоров, то легко вижу, что если второй из редиректоров и работает иногда, то на третий не поступает сообщений вовсе. В сетке около 40 клиентов. Bye. -- Aleksey Barabanov <alekseybb@mail.ru> --- ifmail v.2.15dev5 * Origin: Office Intranet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/4413f25542f0.html, оценка из 5, голосов 10
|