Apache is a web server distributed for free. The software is a cross—platform product, that is, it runs on different operating systems (Linux, Windows, Solaris, etc.).
The main differences from competitors are reliability and flexibility. Apache works on the principle of modules. The client first installs the kernel, and then connects the necessary modules for their tasks.
The principle of operation
Apache processes client-server requests over the HTTP protocol. The web server has 3 multiprocessing modules that are responsible for processing the user’s request:
- Mpm_prefork creates a separate process for each client request. The fewer processes there are, the faster the user’s tasks are processed. The amount of RAM is allocated on the server for each request. This module is usually used in conjunction with other external components that cannot work in multithreaded mode, for example, mod_php.
- Mpm_worker creates processes that work with multiple threads at once. One thread handles one user connection. The module processes user requests faster and loads server resources less.
- Mpm_event is designed to work with persistent (keep-alive) connections. It divides the streams into permanent and active ones, which allows you to increase the speed of processing user requests.
There are modules that are optimized for a family of operating systems. For example, the mpm_winnt module works with Windows OS, mpm_netware — with Netware.
Features
The developers have made Apache as accessible and easy to use as possible. The community regularly releases patches and updates.
Apache has a virtualization feature. Multiple virtual sites can exist on the same IP address. Each host is configured to meet the individual requirements of the client: setting file access rights, limiting the consumption of computing power of the physical server, etc.
For the web server, there are modules that add support for other (DBMS written in C) languages to the Apache kernel, for example, PHP, Ruby, Perl.
Apache has a number of built-in security features. These include the user authorization system, restriction of access by IP addresses, differentiation of access rights to directories and files on the server, etc. The function of starting processes based on user or group IDs is available.
If necessary, the user can encrypt the data transmitted between the server and the client using the SSL protocol. Additional security features are enabled via the mod_security module.
The Apache web server is designed to run a website without unnecessary movements. The intuitive interface, modular system, built-in protection mechanisms and many other features make it one of the most popular web servers.