The layout of the config files is distribution dependant so the main config file may be different. My personal preference is Debian which uses a file named apache2.conf as the main config file. However, other distributions use httpd.conf which is also the name of the main executable. Whatever the case may be, there are a slew of files for configuration which are all linked in some way to the main config file.
Pay particular attention to the Include statements. These statements link config files together, in fact, there is a daisy chain effect going on here. For example:
Include conf.d/
Includes all the files located in the /etc/apache2/conf.d directory. By default these would include files like aliases, charset, localized-error-pages, security, etc.
The Include directive is a convenient tool, I use it often. Include is a C thing except in C it's include. It allows you to keep configuration options in seperate files. For example I keep all the main directory settings in a file called directory and include it from the main config file. This file has to be run before the files in conf.d so I keep it in the main appache2 config directory. Otherwise it will get run to late since that directory is included at the end of the main config file.
All configuration files are added from the main configuration file apache2.conf
with the Include
directive. For example this section includes all the config files in the mods-enabled
subdirectory that end in load
or conf
...
# Include module configuration: Include mods-enabled/*.load Include mods-enabled/*.conf
Also any Vitual Host config files are loaded from the sites-enabled
subdirectory.
# Include the virtual host configurations: Include sites-enabled/