Pros
- Accessibility. This software is open source. This means that it can be used or modified by anyone for free. Developers around the world create configurations and web server modules for their specific needs. For the same reason, Apache regularly receives useful additions that extend its basic functionality.
- Configuration flexibility. Apache uses several configuration files to manage the web server. This allows the software to be customized for specific tasks.
- Functionality. Apache has a dynamic modular structure. You can quickly connect additional functionality in the form of downloadable modules, even without recourse to external sources. This allows you to solve a whole set of critical tasks in the area of security, caching, URL editing, load balancing. Thanks to the hybrid MPM modules, Apache can handle static and dynamic content equally well. It’s possible to quickly disable unnecessary modules and speed up the web server.
- Cross-platform. Apache works on Windows as well as all Unix-like systems. Administration of the web server has no major differences in different operating systems. Individual only the installation process and the location of the directory with the program files.
- Compatibility. Apache works on the basis of scripting or web-oriented languages (PHP, Python, Tcl, Ruby, Perl, ASP), which makes it compatible with the widest range of databases and server software. Many web applications and tools come ready to run from under Apache as a PHP module. The web server supports FastCGI and CGI technologies, allowing you to use software products in the object-oriented languages Java, sh, C, C++.
- Scalability. Suitable for web resources of any size. Apache works well for a single-page site (landing page) as well as for a multi-page site with tens of thousands of daily visitors.
- User support. Apache has been a leader in popularity among web servers since 1996. During this time it has developed an extensive base of documentation, both official and from third party developers. Ready-made, detailed manuals can be found for almost any scenario.
Cons
- Performance. Apache’s request processing speed is somewhat slower compared to its competitors. The flexibility of the web server hurts performance in some cases. For example, Apache has to read several configuration files on the server each time, consuming system resources and time. But this and many other factors can be fixed by disabling unnecessary options. However, in this case Apache functionality will not differ much from other web-servers.
- A complex configuration increases vulnerability. The ability to plug modules into Apache is not always an advantage. The more modules there are, the more complex the configuration becomes. Accordingly, there are more chances of allowing critical gaps in the security loop.
- The syntax of the config files. A variety of variables are used in the program’s parameter files, so setting up and managing a web server can seem complicated for newcomers. You can simplify the administration of Apache by using the free Apache GUI tool.
- Superfluous functionality. Even without additional modules Apache provides users with a lot of opportunities. True, most use only a small part of the basic functionality of the application. Therefore, it is often necessary to spend time after installation to disable “unnecessary” modules.