19.7.1. Модуль mod_ruby

We use cookies. Read the Privacy and Cookie Policy

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. Обратитесь к поставляемой в комплекте с ним документации (или эквивалентной информации в Сети).

Данный текст является ознакомительным фрагментом.