19.7.1. Модуль mod_ruby
19.7.1. Модуль mod_ruby
Обычно, если CGI-сценарий пишется на интерпретируемом языке, то при каждом запросе загружается новый экземпляр интерпретатора. Это дорого обходится с точки зрения потребления ресурсов сервера и времени выполнения.
Сервер Apache решает эту проблему путем создания загружаемых модулей, которые, по существу, становятся частью сервера. Они загружаются динамически по мере необходимости и становятся общими для всех зависящих от них сценариев. Одним из таких модулей является mod_ruby (имеется в архиве RAA).
Модуль mod_ruby реализует несколько директив Apache, в частности:
• RubyRequire определяет одну или несколько потребных библиотек;
• RubyHandler определяет обработчик для объекта Ruby;
• RubyPassEnv определяет имена переменных окружения, передаваемых сценариям;
• RubySetEnv устанавливает переменные окружения;
• RubyTimeOut задает величину тайм-аута для Ruby-сценариев;
• RubySafeLevel задает уровень безопасности $SAFE;
• RubyKanjiCode устанавливает кодировку символов для Ruby.
В состав пакета входят также классы и модули Ruby для взаимодействия с Apache. Модуль Apache (здесь слово «модуль» употребляется в смысле, принятом в Ruby) включает несколько функций, например server_version и unescape_url; там же определены классы Request и Table.
Apache::Request — это обертка для типа данных request_rec, определяющая такие методы, как request_method, content_type, readlines и т.д. Класс Apache::Table — обертка для типа данных table; он определяет, среди прочих, методы get, add и each.
Имеются подробные инструкции по компиляции и установке пакета mod_ruby. Обратитесь к поставляемой в комплекте с ним документации (или эквивалентной информации в Сети).
Данный текст является ознакомительным фрагментом.