Добрый день!
Сегодня включили кеширование через mod_accel (раньше использовали его
в качестве акселератора без кеширования) и напоролись на проблему.
Используется директива:
AccelPass / http://_the_same_host_:90/ [MC=10,MW=50]
При этом на backend-е запущено несколько сотен ip-based
virtualhost-ов, а также несколько name-based. Так вот для name-based
кеширование на базе ip-адреса, очевидно, неприемлемо.
Пришлось править исходники accel_cache.c, убрать оттуда из функции
accel_make_cachefile_name "лишнюю" проверку:
/**** if (a->pass->the_same_host) -- убрано
host = r->connection->local_ip;
else ****/ if (a->pass->preserve_host)
host = ap_table_get(r->headers_in, "Host");
Честно говоря, для меня так и осталась загадкой причина, по которой
при использовании _the_same_host_ кеширование производится по
IP-адресу, а не по заголовку "Host", тем более, что флаг PH
выставляется автоматически.
По-моему, было бы правильнее либо не выставлять PH автоматически и,
соответственно, дать возможность управлять процессом вручную, либо
тогда уж и кешировать по заголовку "Host".
Если я что-то не понял - поясните пожалуйста. :)
С уважением,
Сергей Герштейн
--
заместитель генерального директора по развитию
телекоммуникационная компания Урал Релком
mailto:sg@ur.ru тел: (3432) 718844,776440, факс 594956
http://www.ur.ruhttp://www.e1.ruhttp://www.uralweb.ru
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =