Apache modules

Modules are service programs that can be dynamically linked and loaded to extend the nature of the HTTP Server.

In this way, the Apache modules provide a way to extend the function of a Web server. Functions commonly added by optional modules include:
  • Authentication
  • Encryption
  • Application support
  • Logging
  • Support for different content types
  • Diagnostic support
A good example of a module that is shipped with the HTTP Server that extends the reach of the core Apache server is:
LoadModule ibm_ssl_module /QSYS.LIB/QHTTPSVR.LIB/QZSRVSSL.SRVPGM

This service program is only loaded, linked, and used when you configure the LoadModule directive because you decided to encrypt your data using Secure Sockets Layer (SSL). The advantage of this is that the core Apache program can stay relatively small and tight until a particular function (as provided by a plug-in module) is needed. Then, with just a LoadModule directive and optionally some configuration directives, you can increase the functionality of your Web server with a corresponding increase in the working set size.

Apache core functions are those functions available in a standard Apache installation with no nonstandard modules. The HTTP Server supports more than a 250 directives. About 30 percent of those directives are in the core functions. The remainder of the directives are in separate modules. The LoadModule directive must be used to activate the directives in these modules.

IBM® provides Apache modules, typically called plug-ins, in order to extend the functionality of the Web server. The following is a list of the most commonly-used plug-ins:
WebSphere® Application Server plug-in
Forwards HTTP requests from the Web server to WebSphere Application Server. WebSphere Application Server is the premier application server for Java™ applications.
Integrated Web Application Server plug-in
Forwards HTTP requests from the Web server to Integrated Web Application Server. Integrated Web Application Server is a lightweight application server for Java applications that is integrated into the IBM i operating system.

You can also write your own module to extend the core functionality of the HTTP Server.