Книга: Программирование на языке Ruby
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
. Обратитесь к поставляемой в комплекте с ним документации (или эквивалентной информации в Сети).
- Глава 1. Обзор Ruby
- 1.2. Базовый синтаксис и семантика Ruby
- 1.3. ООП в Ruby
- 1.4. Динамические аспекты Ruby
- Initial loading of extra modules
- Problems loading modules
- 4. MODIFICATIONS
- 1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- Как работает модуль оперативной памяти
- lsmod
- modinfo
- modprobe