From combr@vesna.ru Fri Apr 8 14:32:43 2005 From: Mike Lykov Reply-To: combr@vesna.ru Organization: Vesna X-KMail-Transport: smtp-vesna To: Michael Shigorin Subject: Re: mod_perl + mod_php + mod_ssl Date: Fri, 8 Apr 2005 14:32:43 +0500 User-Agent: KMail/1.6.2 References: <200504071749.08713.combr@vesna.ru> <200504081120.04978.combr@vesna.ru> <20050408064307.GH25265@osdn.org.ua> In-Reply-To: <20050408064307.GH25265@osdn.org.ua> X-KMail-Link-Message: 494897 X-KMail-Link-Type: reply MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Message-Id: <200504081432.43816.combr@vesna.ru> Status: RO X-Status: RS X-KMail-EncryptionState: X-KMail-SignatureState: X-KMail-MDN-Sent: В сообщении от Пятница 08 Апрель 2005 11:43 вы написали: > Так. Значит, либо location надо ловить, либо mod_proxy чинить. > > при этом в основном конфиге стоит > > > > > > ProxyPass /perl/ http://127.0.0.1:8200/ > > ProxyPassReverse /perl/ http://127.0.0.1:8200/ > > > > вроде бы все запросы, где в адресе есть perl, должен перенаправлять? > Наверное. В общем, починил некоторым неочевидным образом. Картина такая: 1. если запускаем сначала httpd, потом httpd-perl, то первый запущеный не знает о том, что надо быть perlproxied. Соотв кусок конфига Вовсе не учитывается и естественно, проксирования не выходит. Если я убираю в основном конфиге " " и он безусловно грузит mod_proxy, тогда все работает _как надо_ (мне сейчас). Фича с возней вокруг этой переменной, как я понимаю, нужна для универсальности - вдруг кто-то поставил apache, но не поставил apache-perl (что чаще всего как раз ;)), тогда ему никакой безусловный mod_proxy не нужен. В то же время, попытка сделать еще одну универсальность: если кто-то поставит только apache-perl, то он у него работал бы как обычный apache. (по кр мере, в дефолтном конфиге httpd-perl - так: если perlproxied не находится, то слушать он начинает порт 80 и не дает запуститься обычному apache). По моему, тут слишком много попыток сделать все как можно универсальнее, и из-за этого путаница. Я бы предложил: в старотовом скрипте httpd проверять наличие httpd-perl.pid и если есть: запускать httpd с perlproxied если нет : запускать без perlproxied 1. случай, когда mod_perl вообще не нужен: ставится только apache, httpd-perl.pid вообще не возникает нигде, все работает "как обычно", mod_proxy не попадает под условие и не работает; 2. случай, когда нужен mod_perl: ставятся оба, но второй сконфигурен только на работу с perl и отдельно работать не предназначен (в его конфиге нет проверки на perlproxied, слушает только 127.0.0.1:8200 и не пытается быть универсальным). Тогда порядок запуска: httpd-perl сначала, сттавит httpd-perl.pid, слушает порт 8200 httpd потом, видит httpd-perl.pid (в стартовом скрипте), запускается с httpd -DPERLPROXIED, начинает работать c mod_proxy. я сейчас так сделать попробовал (удалил из httpd-perl все, что относится к ), но там надо переделывать и стартовые скрипты тоже, а у меня на это не хватает пока желания %) Поэтому не забаботало ;) -- Mike Lykov Samara, "Vesna" parfum company, System administrator