Beginner Fundamentals

Working with Modules

Apache’s features come from modules. The core handles requests, while modules add things like rewriting, compression, and proxying.

Listing Modules

apache2ctl -M        # list loaded modules

Enable and Disable (Debian)

Debian provides helper commands:

sudo a2enmod rewrite
sudo a2dismod status
sudo systemctl restart apache2

a2enmod creates a symlink in mods-enabled/; a2dismod removes it.

LoadModule

Under the hood, a module is activated by a LoadModule directive:

LoadModule rewrite_module modules/mod_rewrite.so

On Red Hat systems you edit these lines directly in the configuration.

Common Modules

  • mod_rewrite: rewrite and redirect URLs.
  • mod_ssl: enable HTTPS.
  • mod_deflate: compress responses.
  • mod_proxy: act as a reverse proxy.
  • mod_headers: add or modify HTTP headers.

Verify a Module Is Active

apache2ctl -M | grep rewrite

Only enable the modules you need. Fewer modules means a smaller attack surface and less memory use.