imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 28.08.2004, 18:24     # 1
AleXXXSoft
Guest
 
Сообщения: n/a

Exclamation Apache и иже с ними (professional)

Люди, помогите!

Кто общался с Apache:

1. есть такой модуль mod_proxy - полезная в некоторых случаях вещь, так вот, как его настроить таким образом, чтобы он выдавал содержимое документа сразу с момента начала его загрузки с удаленного узла, не дожидаясь его полной загрузки?
Кэширование в принципе не важно, важно чтобы информация передавалась синхронно, по мере её появления в исходном документе. А то получается, что пока документ генерируется - прокси висит, а вскоре, после некоторого таймаута выдает ошибку. Грубо говоря: как заставить работать его с Connection: KeepAlive, сейчас он выдает заголовки типа Connection: Close и только.

2. вопрос еще такой, всем известный mod_rewrite - для редиректа использует команду [R], все работает, но адрес в строке броузера меняется, на тот, который переписывается, а должен бы остаться старый, в чем может быть проблема? Пробовал все статусы от 300 до 307.

3. вопрос уже на засыпку. Разрабатываю свой модуль к апачу, модулю необходимо при переходе управления к нему, оставлять у себя управление и генерировать документ, действие достаточно долгое (возможно, даже, и бесконечное), следовательно будет постоянно висеть копия апача в процессах, так вот, что с ней будет происходить, если стоит лимит на количество процессов апача (в настройках самого апача), т.е. плодится он не сможет при новых запросах, следовательно будет ошибка 500/503? Как этого избежать?

P.S.: Версия Apache/1.3.31

P.P.S.: Какие еще HTTP-серверы есть, для которых можно писать модули и т.д., для которых есть документация почитать, и которые, хоть где-то используются? (IIS не предлагать)

Заранее всем спасибо =)
 
Старый 30.08.2004, 08:41     # 2
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
AleXXXSoft
2. попробуй [P]
3. можно попробовать сразу отдавать заголовок "200 OK" и Content-type: chunken, и отдавать сгенерированный документ частями.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 31.08.2004, 12:23     # 3
AleXXXSoft
Guest
 
Сообщения: n/a

Цитата:
is_absent:
AleXXXSoft
2. попробуй [P]
3. можно попробовать сразу отдавать заголовок "200 OK" и Content-type: chunken, и отдавать сгенерированный документ частями.
2. ты меня сразу отправляешь снова к 1 вопросу....
3. пока думаю...
 
Старый 31.08.2004, 12:35     # 4
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
а зачем вообще редирект нужен? убрать этот флаг и все URL перепишется и без него..
__________________
Nunc est bibendum
is_absent вне форума  
Старый 31.08.2004, 15:03     # 5
AleXXXSoft
Guest
 
Сообщения: n/a

Цитата:
is_absent:
а зачем вообще редирект нужен? убрать этот флаг и все URL перепишется и без него..
вот именно, перепишется, а мне нужно, чтобы он оставался в броузере старым...
 
Старый 31.08.2004, 15:30     # 6
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
AleXXXSoft
Флаг R это как раз редирект. Нужен для перенаправления на внешний сервер. Если этого не нужно, то просто убери этот флаг.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 31.08.2004, 15:36     # 7
AleXXXSoft
Guest
 
Сообщения: n/a

сервер внешний

т.е. как бы и не внешний... но порт меняется.... типа был localhost а стал localhost:81
 
Старый 31.08.2004, 15:40     # 8
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*) http://www.yandex.ru/yandsearch?stype=www&rpt=rad&text=$1 [R,P]

вот что у меня получилось. адрес в браузере не переписывается
__________________
Nunc est bibendum

Последний раз редактировалось is_absent; 31.08.2004 в 16:00.
is_absent вне форума  
Старый 31.08.2004, 16:07     # 9
AleXXXSoft
Guest
 
Сообщения: n/a

это у тебя через прокси сработало.. потому адрес и не переписался... а у меня, т.к. страница "все еще генерится" - апачевская прокся висит в дауне и думает.... пока сайт отдаст страницу.... в итоге выдает Proxy Error.... вот. А адрес не переписывается (это когда через прокси) - это у меня и раньше работало.. снова вернулись к первому вопрсоу...
 
Старый 31.08.2004, 16:10     # 10
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
отдавай по частям а не весь. Сгенерил строчку -- отдал браузеру и так пока все не сгенеришь.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 31.08.2004, 16:20     # 11
AleXXXSoft
Guest
 
Сообщения: n/a

Код:
RewriteEngine on
RewriteBase /
RewriteRule ^stream(.*) http://localhost:81/stream/$1 [R,P]
вот ЭТО

а насчет частей... мне нужно, чтобы сокет был тот же.... т.е. я должен отдавать разными кусками по типу multipart/x-..... ?
 
Старый 31.08.2004, 16:54     # 12
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Отдаешь заголовок Transfer-Encoding: chunked, а потом перед каждой частью ставить длинну этой части.
получится что-то вроде
10
1234567890
20
12345678901234567890
0

ой. длину в шестнадцатиричном виде нужно ставить
__________________
Nunc est bibendum
is_absent вне форума  
Старый 31.08.2004, 18:40     # 13
AleXXXSoft
Guest
 
Сообщения: n/a

нифиха не понял... попробую)

P.S. а как же тогда всякие поточные чаты работают через прокси?

короче, шото у меня с этим Transfer-Encoding: Chunked вообще все перестало работать..... в принципе... даже напрямую, может я чего не так делаю?

Код:
$string="Transfer-Encoding: Chunked\r\n\r\n".dechex(strlen($_out))."\r\n".$_out
вот фрагмент того, что выдается - это когда первый раз, каждый следующий раз просто

Код:
$string="\r\n".dechex(strlen($_out))."\r\n".$_out
сразу оговорюсь, работаю напрямую с сокетами! т.е. вот эта созданная строка отдается таким образом:

Код:
socket_write($msock, $string, strlen($string));
проверки на все ошибки есть, поэтому здесь их и не указываю. Вот когда сделал этот чукотский метод - перестало вовсе работать...
 
Старый 31.08.2004, 19:48     # 14
AleXXXSoft
Guest
 
Сообщения: n/a

ИСПРАВИЛ, заработало с чукотским методом! НО:

апачевская прокся на все это положила))) так что по-прежнему это для меня не работает... видимо остается вопрос №1.... и только....
 
Старый 02.09.2004, 09:20     # 15
AleXXXSoft
Guest
 
Сообщения: n/a

хелп....

 
Старый 02.09.2004, 09:27     # 16
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
можно попробовать выставить ProxyReceiveBufferSize и ProxyIOBufferSize поменьше
__________________
Nunc est bibendum
is_absent вне форума  
Старый 02.09.2004, 11:22     # 17
AleXXXSoft
Guest
 
Сообщения: n/a

уже пробовал - ставил от 1 кб и больше - так он тогда ровно на этом куске и обрезал документ... дальше загрузки не было...
 
Старый 02.09.2004, 12:02     # 18
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
а если без прокси показывать эту страничку, она в браузер-то отображается?
__________________
Nunc est bibendum
is_absent вне форума  
Старый 02.09.2004, 13:42     # 19
AleXXXSoft
Guest
 
Сообщения: n/a

само собой без прокси все работает!
 
Старый 02.09.2004, 14:59     # 20
AleXXXSoft
Guest
 
Сообщения: n/a

такс! кое-что уже есть:

поэксперементировал с ProxyIOBufferSize и ProxyReceiveBufferSize, поставил ProxyReceiveBufferSize в 512 байт (это минимум в апачике),
а ProxyIOBufferSize в [очень большое число], проблема стала лучше... как бы, т.е. он стал показывать документ, как только размер добирался до 512 байт, потом до 1024 байт и т.д.
второй буффер - это как я понял размер который максимум выгружать. Вот что плохо, нужно чтобы изменения в документе сразу отражались в броузере... а этого не происходит. К тому же, видимо у прокси есть некий таймаут, по наступлению которого, обновляется соединение - следовательно меняется сокет и все отсюда вытекающее, загрузка начинается с начала.

Что делать? ХЕЛП! Очень нужно, может использовать не апачевский прокси, а что-то другое (если такое вообще возможно)?
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 15:20.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.