What is Apache? Free Apache HTTP Server

Apache is a powerful server whose name comes from an English phrase associated with the name of the Apache North American Indians. Among Russian users has the common name "Apache". This is an open source software with a GPL license. One of its biggest advantages is a cross-platform server, that is, it can work with various operating systems, maintaining excellent performance.

Since 1996, it is the most popular server in the world due to its stability and security. Apache is being developed by a community of user developers, which is led by the Apache Software Foundation.

Apache History

Apache History

In March 1989, Tim Berners Lee, an English scientist working in CERN (Switzerland), proposed a new way to manage the vast amount of information in CERN projects. At that time, no one knew what Apache was. The initial development of a hyperlinked document network, as Ted Nelson called them in 1965, led to the creation of WWW, the first software to be released in November 1990 under the name World Wide Web, with a web browser, graphical interface, and WYSIWYG editor. Two years later, there were only about thirty entries in the list of WWW servers, among which were NCSA HTTPs.

The true story of Apache begins in March 1995 with the release of Apache 0.2 based on the NCSA HTTPD 1.3 server. Many users are interested in knowing what Apache is today and what the program was like in the first months of its existence. It was just a set of edits applied to the NCSA server. Then Robert Tau released Shambhala 0.1 with an API for modules that were very successful.

The major milestones of the project were full compliance with the HTTP 1.1 standard, which was included in version 1.2 in April 1997. This version already included the Windows NT platform, which launched in July 1997. Combining configuration files was implemented in release 1.3.3.

The Apache Group is responsible for the evolution of the web server and specific development solutions. This group should be distinguished from the core developers - Core group. The voluntary nature of most developers makes it unlikely that they are all simultaneously active in Apache, so the kernel is responsible for continuous performance. In general, the decisions that developers must make belong to the kernel and are limited to voting for the inclusion of code. On the other hand, they usually have the right to write to the CVS repository, therefore they serve as a gateway to the code, ensuring its correctness and quality.

Minimum Requirements and Benefits

Apache has been widely recognized on the web; since 1996, it has been the most commonly used HTTP server. It reached its maximum market share in 2005, when the server was used on 70% of sites worldwide. In recent years, its market share has declined. It is noteworthy that for Apache such a decline does not indicate the unpopularity and degradation of technology.

Minimum requirements for operation:

  1. Processor - Pentium.
  2. RAM - 64 Mb.
  3. OS-Microsoft Windows, GNU / Linux.
  4. Installation size - 50 Mb.


  1. Modular design.
  2. Open source.
  3. Multi-platform design.
  4. Elongation.
  5. Popularity - easy to get help and support.

Server architecture

Server architecture

The Apache modular server consists of a main section and various modules that provide most of the basic functions. Some of these modules:

  1. mod_ssl - secure communication through TLS;
  2. mod_rewrite - address rewriting, usually used to convert dynamic pages, such as php, to static, to trick search engines as to where they were developed;
  3. mod_dav - support for the WebDAV protocol (RFC 2518);
  4. mod_deflate - the compression algorithm is transparent when the content is sent to the client;
  5. mod_auth_ldap - allows users to authenticate with the LDAP server;
  6. mod_proxy_ajp - connector for communicating with Jakarta Tomcat dynamic pages in Java (servlets and JSPs).

The core server can be expanded by including external modules, including:

  • mod_cband - traffic control and bandwidth limitation;
  • mod_perl - dynamic in Perl;
  • mod_php - dynamic in PHP;
  • mod_python - dynamic in Python;
  • mod_rexx - dynamic in REXX and REXX object;
  • mod_ruby - dynamic in Ruby;
  • mod asp dot net - dynamic in Microsoft.NET;
  • mod_mono - dynamic in mono;
  • mod_security - application-level filtering for security.

Configuration and Security

Configuration and Security

In order to understand what Apache is in the light of security, you need to consider its configuration. Most of the configuration is done in the apache2.conf and httpd.conf files, depending on the system on which the software is running. Any change to this file requires a server restart or a forced read again.

The software license for Apache’s core software is a distinctive part of the history of Apache HTTP Server and the open source community. The license allows the distribution of open and closed source products.

The Free Software Foundation does not consider it to be an Apache License compatible with version 2 of the GNU General Public License (GPL), in which the software is licensed and not integrated with the software. This must be considered before setting up the Apache web server, distributed under the GPL. However, version 3 of the GPL includes a provision that allows it to be compatible with licenses that have patent claims.

Most of the detected and resolved security vulnerabilities can be used only by local users, and not remotely. However, some still run remotely in certain situations. Or if they are used by malicious local users to violate shared hosting agreements that use PHP as the free Apache web server module.

Checking the functioning of Apache

Checking the functioning of Apache

To make sure that Apache is working properly, open a web browser and enter the following address: http: // localhost. Then press Enter, a white page appears with the message “It works”, which is proof that the web server is working fine.

Apache allows you to create special configurations for customization and adaptation to needs. To do this, find the http.conf file in C: appserv Apache2.2 conf. A backup copy is created to avoid runtime errors, then it is opened using any editor and the necessary lines are changed.

To correctly perform these steps, you need to know Apache worker well, since any changes made will be reflected in the performance and launch of Apache. Thanks to the latest recommendations, the server will be installed. It will work in the basic configuration, which allows you to download pages or network applications on the Internet.

Information management

Information management

Apache is the most used web server, the leader with the most installations in the world, far ahead of other solutions such as Microsoft Internet Information Server (IIS). This project is open for use, as it is multi-platform, has versions for all major operating systems, is very reliable and stands out for its security and performance.

The computer on which this software runs gets the same name. This is crucial because it is responsible for accepting requests for pages from visitors who access the site and manage their delivery or rejection in accordance with the established security policy. Although this process may seem simple, it includes many aspects and functions that must be performed:

  1. Query efficiency.
  2. A large number of HTTP requests, including multitasking, can leave the service minimized.
  3. Restrictions on access to files, management of user authentication or filtering requests according to their origin.
  4. Error handling on pages with visitor information and redirecting to predefined pages.
  5. Managing the information to be transmitted in accordance with its format, and adequately informing the browser requesting the specified resource.
  6. A management journal for storing received requests, errors that occurred and, in general, all information that is registered and analyzed to obtain statistics on access to the site.

Apache allows you to configure virtual hosting based on IP addresses or names, that is, have several websites on one computer.

Apache2.conf file

Undoubtedly, apache2.conf is the most important file, since it defines the general behavior of web pages and, in addition, is responsible for access to various modules that extend the functionality of the server.

It is located in the / etc / apache2 directory, and since it is a text file, it can be easily edited using a text editor. The properties of the configuration file are global server variables and enhanced functionality.

Server global variables are variables that determine the overall functioning of:

  1. Apache Directive Table The server name is indicated by the ServerName variable, so any redirection or link that exists in HTML documents works well. Most configuration variables are distributed among other small files stored in mods-available.
  2. .htaccess is a hidden text file that allows you to configure the server.
  3. "Apache" is a specific directory without the need to modify the main configuration file apache2.conf. When the web client requests a file from the server, it looks from the root directory into the subdirectory containing the one requested for .htaccess and takes into account the directives contained in it before executing the request.

.Htaccess principle:

  1. Forbids listing files in a directory.
  2. Redirects web traffic.
  3. Configures error pages.
  4. Restricts access to certain files.
  5. Denies access to specific IP addresses or ranges of IP addresses.
  6. Expands functionality, which is associated with calls to other modules and configuration files. All directives associated with this clause will be preceded by the word “Include”.

Install Apache Web Server

Install Apache Web Server

Apache was originally designed to work with PHP technology, but it can also work with .NET without problems, which makes it more successful than Microsoft IIS, which is a collaborator for servers using IIS and provides full PHP support without the need to change the configuration .

To install and run a web server, you first need to download it from the official site. Always find the latest version of available software and check to see if it is identified as Win32 Binary, including OpenSSL.

The version has a built-in installation and data protection system. Once selected, it is downloaded to the PC. Double-click on the file icon to start the process, which is simple, as accompanied by an assistant.

One of the first windows in which the necessary information will be provided so that the web server can connect to the network is an information window. There, the user fills out a short form by adding the network domain name, server name and administrator email address. For the first two options, select localhost.

Next, the installation window appears, where all the available components are indicated. All of them are selected and checked, the presence of the c: appserv Apache2.2 folder. Next, configure the Apache web server.

Web Monitor on the taskbar

After installing Apache make sure that it was executed correctly. To do this, go to the "Start" menu and find the "Run" option. A pop-up window will appear in which you enter cmd, a pop-up screen of the system appears. To make sure that the user is working as an administrator, right-click on the window and select "Run as administrator".

Installation Algorithm:

  1. In the Windows console, they find the Apache bin folder, for this they write the following sentence in the console - c: appserv Apache2.2? in.
  2. After entering, press Enter and the system component, which will look like this - C: appserv Apache2.2? In>.
  3. From the bin folder, type http: .exe -k install and press Enter.
  4. A message similar to “.Apache 2.2: the service is already installed” will appear. This message will verify that Apache has been successfully installed.

One of the most effective ways to verify that Apache is working properly is to determine if the application monitor is active. It can be seen on the taskbar. If it is inactive, activate it by going to the "Start" menu, the "All Programs" section and Apache http Server 2.2., Click on Monitor Apache Server and activate it.

The monitor is useful because it allows you to stop the server, pause and activate it with complete comfort, without going to the console window, just clicking on the icon on the taskbar to open the control window.

Linux Installation Tips

Linux Installation Tips

If the user has a site and needs a platform for its placement, you can use the services of one of the hosting providers or try to host your site on the server yourself.

Installation Algorithm:

  1. Download the latest stable version of Apache.
  2. Download source files appropriate to the system.
  3. Extract software files.
  4. After that, the downloaded files will need to be unpacked: gunzip -d httpd-2_0_NN.tar.gz; tar xvf httpd-2_0_NN.tar.
  5. This creates a new directory in the current directory with the source files.
  6. As soon as the files appear, tell the machine where to find all the source. The easiest way to do this is to accept all the defaults and just type: ./configure.
  7. Configure Apache, provided that there were no problems with installation and assembly. The user configures, which is equivalent to editing the httpd.conf file. It is usually edited with a text editor- vi PREFIX /conf/httpd.conf. You must be root to make any changes.
  8. Check server operation.

World Wide Web Application

World Wide Web Application

Apach is mainly used to send static and dynamic pages to the World Wide Web. Many applications are developed taking into account the Apache implementation environment or will use the characteristics of this server. Apach is a server component in the popular LAMP application platform along with the programming languages ​​MySQL and PHP, Perl, Python and Ruby, including the Oracle database and the IBM WebSphere application server. Mac OS X integrates it as part of its own web-server and WebObjects application support.

Apache is used for many other tasks when content should be accessible in a safe and reliable way. For example, when sharing files from a personal computer to the Internet. A user with Apache installed on the desktop can arbitrarily place files in the root of documents, from where they can become shared.

Web application developers sometimes use the local version of Apache to preview and test code during development. Microsoft Internet Information Services (IIS) is Apache’s main competitor, as well as the Sun Microsystems Sun Java System web server and many other applications, such as the Zeus Web-Server.

Some of the largest sites in the world run on Apache. The external interface of the Google search engine is based on its modified version, which is called Google Web Server (GWS). Many Wikipedia projects also work on Apache servers.

Source: https://habr.com/ru/post/A11033/

All Articles