Страница 1 из 1

Предложение по Rejik'у

Добавлено: Ср ноя 16, 2005 15:41
zabudkin
Сабж.

Хотелось бы, что Rejik сам перечитывал файлы конфигурации, скажем через указанное количество минут (секунд).

Можно ли это осуществить сейчас?
Делаю
killall redirector
вылетает Rejik и сквид падает :(
2005/11/16 16:38:55| WARNING: redirector #1 (FD 6) exited
2005/11/16 16:38:55| WARNING: redirector #2 (FD 7) exited
2005/11/16 16:38:55| WARNING: redirector #3 (FD 8) exited
2005/11/16 16:38:55| WARNING: redirector #4 (FD 9) exited
2005/11/16 16:38:55| WARNING: redirector #5 (FD 10) exited
2005/11/16 16:38:55| WARNING: redirector #6 (FD 11) exited
2005/11/16 16:38:55| WARNING: redirector #7 (FD 12) exited
2005/11/16 16:38:55| WARNING: redirector #8 (FD 13) exited
2005/11/16 16:38:55| WARNING: redirector #9 (FD 14) exited
FATAL: Too few redirector processes are running
Squid Cache (Version 2.4.STABLE7): Terminated abnormally.
CPU Usage: 5.140 seconds = 3.070 user + 2.070 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 458

Плиз, предложите какие-нибудь варианты.

Добавлено: Ср ноя 16, 2005 15:53
Slava
Попробуйте squid -k reconfigure
кстати, для какой цели это нужно?

Добавлено: Ср ноя 16, 2005 16:03
zabudkin
Тоже самое происходит.
А нужно это для следующих целей:
часто появляются страницы, которые нужно перенаправлять на локальные с помощью raw_change.
Каждые 10 секунд (среднее значение) добавляются в конфиг новые строки raw_change. После их добавления нужно, чтобы режик перечитал файл конфигурации.
Может мне что в исходниках поправить?

Добавлено: Ср ноя 16, 2005 16:22
Slava
Давайте отделим мух от котлет, я вижу тут две проблемы:

1. Неправильно рестартует сквид.
Скорее всего где-то что-то с правами не так. Например, при добавлении в конфиг режика новых опций, меняются права на него.

2. Необходима возможность заставить режик перечитывать свои логи каждые дцать секунд.
На самом деле не очень хорошо, с точки зрения производительности, так как старт редиректора процесс ресуркоемкий. И честно говоря, как это изменит пока не представляю, пока могу предложить только через рестарт.

А если копнуть глубже, какие raw_change и для чего добавляются каждые дцать секунд?

Добавлено: Пт ноя 18, 2005 11:43
zabudkin
Просто есть сайты, которые очень часто используются по работе, а на них картинки, которые сквид не кеширует.
В режике у меня редирект на скрипт, который скачивает запрошенную картинку, ложит ее на локальный вебсервер и добавляет в конфиг Режика строку raw_change.
Проблема в т ом, что для этой строки стоит ограничение в 100 символов, я в исходниках экспериментальным путем в vars.h повысил значения, всё работает на ура, но часто вижу вот такое:
2005-11-18 12:39:33 [27525] WARNING!
Understand option in config file: raw_change http://www.bankreferatov.ru/referat/pics/htm.gif ... Ignoring
2005-11-18 12:39:33 [27526] WARNING!
Understand option in config file: raw_change http://www.bankreferatov.ru/referat/pics/htm.gif ... Ignoring

Вообщем не суть важно, сейчас всё работает отлично.

У меня просьба, помогите пожалуйста составить prce правило:
дано: domain.ru
нужно, чтобы все gif файлы, независимо от того, в какой папке они находятся (domain.ru/1/, domain.ru/lalal/lala/2 и т.п.) с этого сайта попадали под prce правило.

Добавлено: Пт ноя 18, 2005 11:56
Slava
наверное domain\.ru\/.+\.gif

хм, а почему сквид не кеширует картинки?
Вроде он для того и нужен

Добавлено: Пт ноя 18, 2005 12:13
zabudkin
Не знаю почему не кеширует, я уже и refresh_pattern и header_access использую, бестолку, некоторые кеширует, некоторые нет.

СПАСИБО за pcre правило!

А можно еще одно:
image.что-угодно.ru/что_угодно_папка_или_нет/файл.gif

Я так понял pcre правило будет таким?
image\..+\.ru/.+/.+\.gif

Добавлено: Пт ноя 18, 2005 12:20
Slava
наверное так
image\..+\.ru\/.+\/.+\.gif

Добавлено: Пт ноя 18, 2005 12:36
zabudkin
Спасибо за помощь!
А можно как-нибудь отрицание в pcre задать?
Скажем, как последнее правило:
image\..+\.ru\/.+\/.+\.gif

но чтобы в случае, если встретилось слово word, правило не срабатывало?

Добавлено: Пт ноя 18, 2005 12:41
Slava
man pcrepattern

Lookahead assertions

Lookahead assertions start with (?= for positive assertions and (?! for
negative assertions. For example,

\w+(?=;)

matches a word followed by a semicolon, but does not include the semi-
colon in the match, and

foo(?!bar)

matches any occurrence of "foo" that is not followed by "bar". Note
that the apparently similar pattern

(?!foo)bar

does not find an occurrence of "bar" that is preceded by something
other than "foo"; it finds any occurrence of "bar" whatsoever, because
the assertion (?!foo) is always true when the next three characters are
"bar". A lookbehind assertion is needed to achieve the other effect.

If you want to force a matching failure at some point in a pattern, the
most convenient way to do it is with (?!) because an empty string
always matches, so an assertion that requires there not to be an empty
string must always fail.