The Evolution of Apache HTTP Server
Since its inception in 1995, the Apache HTTP server has seen tremendous adoption. It rose to dominance in the late 90s during the early days of the Internet, overtaking proprietary web servers from Microsoft, Netscape and others. Apache peaked with a market share of nearly 80% in 2005. Although its share has decreased to 46% presently, Apache continues to be the most popular web server software globally.
The first major release came in 2002 with Apache 2.0, refactoring the aging Apache 1.3 codebase into a modular architecture. This enabled third-party modules to extend functionality. Over its 20+ year history, Apache has focused on high performance, stability, security and scalability to meet demands of modern Internet traffic.
Apache 2.3 to 2.4 – Improved Performance and Scalability
The jump from Apache 2.2 to 2.4 brought major enhancements to keep up with evolving web deployment environments like the cloud. Some of the key improvements include:
- Up to 8x better performance with event MPM module
- Lower memory footprint – 20-50% reduced memory usage
- Asynchronous support handles more simultaneous connections
- On-demand loading of modules
- Fine-grained control over configuration
- Platform improvements for cloud environments
Benchmark tests show that Apache 2.4 significantly outperforms 2.2 in most workloads. The combination of enhancements gives Apache 2.4 superior concurrency and efficiency in multi-core and multi-processor hardware. This makes it ideal for modern cloud infrastructure and containers.
Version | Requests/sec | Load Test |
---|---|---|
2.2 | 21,072 | ab 100k x 10 threads |
2.4 | 166,070 | ab 100k x 10 threads |
Figures 1 – Apache benchmark comparisons (source: {1})
Advantages of RPM Packages
On CentOS, RHEL and other RPM-based Linux distributions, pre-compiled RPM (Redhat Package Manager) packages offer significant benefits over source compilation:
- Faster installation – no need to compile from source
- Easier upgrades – single upgrade command
- Consistent configurations – uses vendor specifications
- Patching security fixes is simpler
- Facilitates deployment automation
Additionally, the modular structure separates core server (httpd), SSL functionality (mod_ssl) and other modules into respective packages. This allows flexibility to install only required components.
Downloading and Installing Apache 2.4.4
Now that we understand the performance improvements in Apache 2.4 series and advantages of RPM packages, let‘s go through the installation process…
1. Download Latest RPM Packages
First, use wget to grab the latest Apache 2.4.4 rpm packages from the distribution mirrors:
$ wget https://rpm.example.com/httpd-2.4.4-1.x86_64.rpm
$ wget https://rpm.example.com/mod_ssl-2.4.4-1.x86_64.rpm
2. Install Apache and Enable SSL Module
Next, run the following commands as root or with sudo privileges to install Apache 2.4.4:
# rpm -ivh httpd-2.4.4-1.x86_64.rpm
# rpm -ivh mod_ssl-2.4.4-1.x86_64.rpm
This installs Apache under /etc/httpd directory and modules under /etc/httpd/modules. The main configuration resides at /etc/httpd/conf/httpd.conf.
3. Start the Apache Service
Issue the following systemctl command to start the Apache httpd service:
# systemctl start httpd
By default, Apache listens on port 80. You should now be able to access the Apache test page at http://your_server_ip.
Configuring Apache for Enhanced Performance
Now that Apache is installed and running, we can tweak configurations for better performance. Some key optimizations include: