2011-01-04 4 views
0

Я переношу фильтр IAS asapi в linux/apache и задаюсь вопросом, какой лучший путь для его получения. В IIS этот фильтр isapi перехватывает запрос, выполняет поиск базы данных для поиска файла, который запрашивает пользователь, а затем перезаписывает URL-адрес, чтобы напрямую обслуживать этот файл.Переписывание URL-адресов Apache без mod_rewrite

Каков наилучший способ сделать это на Apache? mod_rewrite, похоже, не имеет возможности вставлять код пользователя для выполнения поиска базы данных, поэтому мы не можем его использовать. Мы не можем использовать mod_isapi, поскольку наша DLL является фильтром, и модуль не поддерживает это.

Прямо сейчас, я думаю, самый простой способ - написать собственный C-модуль, используя код mod_rewrite в качестве руководства. Я бы хотел избежать этого, если смогу. Я также не хочу, чтобы вы отправляли HTTP-перенаправление для каждого запроса через скрипт perl/PHP/любой, поскольку производительность будет страдать от перенаправления.

Предложения? Можем ли мы использовать обработчики или фильтры Apache для этого?

ответ

2

В mod_rewrite MapType «prg» предназначен именно для этого. Он позволяет использовать любой исполняемый файл в качестве вашей карты, все, что вам нужно сделать, это чтение в строках и вывод значения поиска.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

+0

Спасибо, я рассмотрю это. Знаете ли вы, есть ли какие-либо хиты производительности при использовании этого? Может ли внешнее приложение каким-то образом кэшироваться? Я вижу, что ответы могут быть кэшированы, но я не уверен, что это соответствует нашим потребностям или если это нам поможет. – MonkeyWrench

+0

Внешнее приложение должно отвечать за собственное кэширование. Это может и хорошо масштабироваться, если ваше внешнее приложение может не отставать от входящих запросов. – Zeki

+0

Интересно. Загружается ли внешнее приложение в память для каждого запроса? Учитывая, что мы будем подключаться к базе данных, похоже, было бы лучше, если бы она была настойчивой. – MonkeyWrench

Смежные вопросы