A module is an addition to a site, adding to or modifying
the site's functionality in some manner. The module is made up of a
Pike or Java object that is run inside Roxen. Each module is
configured through the administration interface.
Which modules are enabled and how they are configured determines
how the web site will behave, or even if it should be a web site at
all. If only proxy modules are enabled the site will not be a web site
but rather a proxy server.
Modules come in different flavors, or types. Each module belongs to
one or more types. Some types, like the Authentication and
Directory types, are special and you can only enable one per
site. It is on the other hand possible to enable any number
or modules of more common types, like the Location or
Parser types. Some modules may themselves be installed more
than once, but that is a module dependent property not something
determined by the module type.
The module type determines what services the module provides. A
Location module will provide files, either from a real file
system, from a database or from some other source. A Parser
module provides new RXML tags, that can be used like HTML tags.
The module types are designed so that modules can cooperate. The
idea is that each module should provide a basic functionality, that
can be combined by the functionality provided by other modules. That
way the administrator can tailor the configuration of her web site to
her needs, by choosing the right set of modules.