Configuring Apache on your Linux Web server

Apache is one of the most widely used web servers, powering over half of all active websites. Understanding Apache is helpful due to its popularity.

Step 1: The Apache File Structure

Apache’s main configuration files are in the /etc/apache2 directory. To see these files, use this command:

ls -f /etc/apache2

Important Files and Directories:

  • apache2.conf: Main configuration file. It’s better to use designated files for simplicity.
  • ports.conf: Specifies the ports for virtual hosts. Essential for SSL configuration.
  • sites-available/ and sites-enabled/: Stores virtual host configurations. Use symbolic links to activate configurations from sites-available in sites-enabled.
  • conf-available/ and conf-enabled/: Contains configuration fragments not tied to virtual hosts.
  • mods-available/ and mods-enabled/: Manages loadable modules with .load and .conf files.

Step 2: Exploring apache2.conf

The /etc/apache2/apache2.conf file holds global configuration details and includes other configuration files using Include and IncludeOptional directives.

Editing apache2.conf:

sudo nano /etc/apache2/apache2.conf

Important Sections:

  • Global server settings
  • Default server settings
  • Virtual host configurations

Included Files:

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

Step 3: Setup Global Configurations

Key Parameters to Modify:

  • Timeout: Default is 300 seconds; can be reduced to 30-60 seconds.
  • KeepAlive: Set to On to keep connections open for multiple requests.
  • MaxKeepAliveRequests: Default is 100; can be increased or set to 0 for unlimited requests.
  • KeepAliveTimeout: Default is 5 seconds.

Multi-Processing Modules (MPMs): Check installed MPMs:

apache2 -L

Check active MPM:

a2query -M

Step 4: Update Virtual Host File

Default Virtual Host: Located in 000-default.conf in the sites-available/ directory.

Editing the File:

sudo nano /etc/apache2/sites-available/000-default.conf

Key Configurations:

  • ServerAdmin: Email for server issues.
  • DocumentRoot: Directory for the served content.
  • ErrorLog and CustomLog: Paths for log files.

Virtual Host Specifics:

  • ServerName: Domain name or IP address.
  • ServerAlias: Alternative names for the virtual host.
  • DocumentRoot: Location of the content for the virtual host.

Step 5: Enabling Sites and Modules

Enable a virtual host:

sudo a2ensite your_domain
sudo systemctl restart apache2

Disable a virtual host:

sudo a2dissite 000-default
sudo systemctl restart apache2

Enable a module:

sudo a2enmod info
sudo systemctl restart apache2

Disable a module:

sudo a2dismod info
sudo systemctl restart apache2

Conclusion

Apache’s modular design allows for flexible configurations. Understanding the main configuration files and how they interact helps in customizing Apache to suit your needs. Experiment with the settings to better fit your specific requirements, and refer to Apache’s documentation for more detailed options.

You May Also Like