Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-rus] mod_gzip ? ????????????? Get



20 марта 2001 г. в 2:35 Вы писали:

MZ> On Mon, Mar 19, 2001 at 16:40 +0200, Vladimir Shevchuk wrote:
>>
>> Hello apache-rus,
>> 
>>   Тут возникли грабли с mod_gzip и RA
>>   при Get запросах тело запроса не перекодируется :(
>>   а так-же в ситуациях когда gzip делает SEND AS IS и TOO_SMALL :(
>>   может кто борол это дело.

MZ> Бороть mod_gzip затруднительно, поскольку его исходный текст представляет
MZ> из себя один файл на C из более чем 13000 строк. Вдобавок, добрая часть
MZ> этой глыбы посвящена реализации алгоритма, с которым прекрасно справляется
MZ> библиотека zlib. Видя такое, хочется юзать винтовку, а не отладчик.
MZ> Код обработки запросов в этом модуле, по моим впечатлениям - большой хак.
MZ> Чтобы без проблем сосуществовать с другим хаком, имя которому - Russian
MZ> Apache, хак должен быть элегантен, как, например, EAPI товарища
MZ> Engelschall'а. Забавно, в mod_ssl и mod_gzip решаются сходные задачи -
MZ> сделать "кодек" ввода-вывода незаметным для подсистемы обработки запросов
MZ> - а подходы разные, как божий дар и яичница.

Истинная правда.  Поэтому mod_gzip не уживается не только с RA, но и с
mod_rewrite...  Мы сейчас работаем таким образом: на 80-ом порту
влючен mod_gzip, сервер принимает запрос и через mod_proxy отправляет
запрос к себе же на порт 8090.  Там уже mod_gzip не включен, зато
работает mod_rewrite, RA и т.д. и т.п.  Результат пока вроде бы
нормален за исключением тех скриптов, которым нужен IP-адрес клиента
(для скрипта все запросы приходят через mod_proxy от самого сервера).

В конфиге это выглядит примерно так:

----------------------------------------
<VirtualHost ourhost:80>
  ...
  mod_gzip_on  Yes
  ...
  RewriteEngine On

  # картинки отдаем сразу
  RewriteRule \.(gif|jpe?g)$ - [L]
  mod_gzip_item_exclude   url \.(gif|jpe?g)$

  # остальное пробросим через mod_proxy
  RewriteRule     ^/(.*)  http://%{SERVER_NAME}:8090/$1 [P]

</VirtualHost>

<VirtualHost ourhost:8090>
  ...
  mod_gzip_on  No
  ...
</VirtualHost>
-----------------------------------------

Естественно, это сильно упрощенный вариант, на самом деле у нас
используется перекодировка по портам, сложные правила mod_rewrite,
часть скриптов приходится запускать сразу по 80-ому порту (т.к. им
нужно знать REMOTE_ADDR клиента и т.д. и т.п.  Но в общем и целом
такая схема (согласен, довольно кривая) работает.  В действии можно
посмотреть на www.e1.ru и www.uralweb.ru


С уважением,
Сергей Герштейн 

--
заместитель генерального директора по развитию
телекоммуникационная компания Урал Релком
тел. (3432) 776440, 598721, факс 594956
mailto:sg@xxxxx   http://www.ur.ru


=============================================================================
=               Apache-Rus@xxxxxxxxxxxxx mailing list                       =
Mail "unsubscribe apache-rus" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/mail-archive                =







Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.