A Brief Guide to Apache Web Server: What It Is and How It Works?
Apache web server
Apache is one of the oldest web servers that’s still very widely used and accepted. Created in the 1990s under the Apache License 2.0, it’s maintained by a foundation made up of developers known as the Apache Software Foundation.
The Origins of the Name Apache
If you’re not into web servers, website management, or any other digital feature, yet you happen to come across the term “Apache”, you might think of the Native American tribes in Southwestern United States that went by the same name.
While Apache in this industry stands for this web server, it’s most probably inspired by these Native American tribes. There have been several explanations regarding Apache’s name over the course of time. Here’s what Brian Behlendorf, one of the people responsible for creating Apache, said in an interview for Linux Magazine in 2000:
I had some friends at a company called Enterprise Integration Technology, and somebody there asked me, “What would be your ideal Web server?” So I wrote about a bunch of stuff that I thought was missing from NCSA’s server — some stuff that still isn’t in a lot of Web servers like revision control and stuff like that. I put it on a page and said: “I should come up with a name for this.” The name literally came out of the blue. I wish I could say that it was something fantastic, but it was out of the blue. I put it on a page and then a few months later when this project started, I pointed people to this page and said: “Hey, what do you think of that idea?”
If you visit the official Apache foundation website, you can find the answers to a lot of Apache-related questions in the FAQ section (including how Apache supposedly got its name)
However, interestingly enough, if you go to the official website of the Apache foundation, you’ll find the following written answer in the FAQ section in regards to the origins of the name Apache:
Whatever happens to be the truth, there’s no denying that individuals in the web server industry are very much familiar with the name Apache and what significance it holds.
What Is Apache and How Does It Work?
Apache is open-source and used by both smaller and larger companies. One of the best things about Apache must be the fact that Apache’s source code is available for free and you don’t need to have any type of license for it. It’s lightweight and it offers endless possibilities which are also the result of its modularity.
Apache is a web server, however, not a physical one – it’s a software that runs on a server. It’s able to run on almost any operating system – Linux, Windows, Solaris, Digital Unix, and others.
Apache is compatible with many content management systems (CMS) such as WordPress, Joomla, Drupal, and others, and works perfectly fine with different web hosting options.
Its main function is to establish a link between the server and the browser a client uses (Safari, Google Chrome, Mozilla, and so on) so that it can distribute data between them interchangeably.
Apache offers numerous customizing possibilities, which makes it a flexible and highly adjustable web server. Its long-term popularity definitely makes it one of the most successful web servers worldwide.
Yet, its success is partially due to its appearance coinciding more or less with the beginnings of the WWW (World Wide Web) too. Apache basically set the criteria of what a proper web server ought to perform like. Back then, Apache was the first web server choice for many, and it still is for plenty of people today.
Basic Features of Apache
Apache has many features and characteristics that have changed and adjusted to fit the modern needs. With that being said, Apache can undergo certain changes to adjust the code and fix certain errors as well.
It’s also very reliable and regularly updated too. Its installation isn’t overly challenging – it’s quite easy and manageable. Plus, the documentation aimed to help users understand Apache is detailed and substantial. In fact, on their official website they provide a very useful starting guide that’s comprehensible even to those just starting out.
Another key feature is that if you use Apache, you can run multiple websites on the same server, meaning Apache allows virtual hosting (it’s able to create virtual hosts on that same server).
It’s also useful to know that as Apache has numerous configuration problems, this could potentially trigger some security issues.
Apache has a module-based structure. Hence, it offers numerous multi-processing modules (known as MPMs), and they determine how different client requests are processed. Here are the multi-processing modules:
- mpm_prefork (generates processes with a single thread each in order to manage requests);
- mpm_worker (generates processes where each can handle several threads – each thread is capable of handling a single connection);
- Mpm_event (responsible for handling keep-alive connections by placing dedicated threads aside).
- Supports several graphical user interfaces (GUIs);
- Supports URL rewriting as well as header and content rewriting;
- Provides content negotiation (able to serve different versions of the same document at the same URL);
- Supports password authentication;
- Offers great level of scalability (can easily take care of more than 10,000 connections happening at the same time);
- XML support;
- FTP support;
- CGI support.
A list of some of the brands using Apache
Apache is well-accepted not only among famous brands and busy websites, but smaller businesses and beginners as well. Here’s a list of some Apache customers:
- We Fuse
- Data Management
Apache might as well be one of the best web servers that ever existed and it powers 41.7% of all websites whose server we are familiar with. Yet the one disadvantage that Apache has is that its performance isn’t quite satisfactory for static websites or websites experiencing high traffic. That’s why some opt for Ngnix instead.
Although Fortune 500 companies worldwide use both Apache and Nginx, Ngnix is said to have a more competitive and advanced performance in many cases.
There’s also a difference in how Apache and Ngnix handle requests. Apache makes use of the multi-processing modules (MPMs) we’ve already outlined above, whereas Ngninx uses asynchronous, event-driven (EDA) architecture.
As Apache uses processes for every connection that appears (note that with mpm_worker threads are used), it becomes quite costly when there’s an increase in traffic. Nginx, on the other hand, handles this differently. In Nginx there’s usually one worker process per CPU (central processing unit). And each worker process is capable of handling hundreds of thousands of network connections per worker.
This aspect is highly important, as the thread (or process) is regarded as the basis of any Unix Application.
Nginx is generally considered to be Apache’s greatest rival, and there are some claims that it might eventually even outrank Apache.
Here’s a list of other web server competitors to Apache besides Nginx:
- Microsoft IIS
There are many predictions that Nginx will eventually dethrone Apache
Now you know what Apache is, how it (allegedly) got its name, how it functions as a web server, what its main features are, as well as its competitors.
Ultimately, we can’t tell you whether Apache is suitable for your website or not, although its history and popularity say it all. When it comes to web servers nowadays, there are many options and choices, however, those offering the highest quality are the ones that always stand out.
That’s why it may be counterproductive at times to compare competitors and accentuate the disadvantages of one in order to make the other look better. In this context, we agree with the following statement: “For many application types, NGINX and Apache complement each other well, so it’s often more apt to talk about ‘NGINX and Apache’ instead of ‘NGINX vs. Apache’”.
View Related Articles
In a real-world filing system, there needs to be a record of where each file is. Otherwise, there really wouldn’t be a point in having a filing system. An inode is a concept that solves this problem digitally, in Unix filing systems.
Nginx is an open-source software, functioning initially as a web server, but it’s also used as a reverse proxy, HTTP cache, or a load balancer. It’s been released under the terms of the 2-clause BSD license, and its event-driven…