What you should know about Apache web servers
Published: 2022-11-04 07:13:06

**What is apache?**
Apache is an open-source program that enables users to publish their web applications on the Internet network.

**What is a web server?**
A web server is a software and hardware that responds to client requests made through the World Wide Web using Hypertext Transfer Protocol and other protocols.

**Architecture for Apache Web Servers and Applications**
A number of functionalities are supported by Apache. Many extensions of the fundamental functionality are implemented as compiled modules, and these can include everything from server-side programming language support to authentication protocols.

In Apache, compression methods include mod_gzip, an external module that helps to reduce the size (weight) of web pages served over HTTP. The core implements a number of utility functions as well as the basic functionality of the server.

**Why Apache Web Servers tho? 👀**
Since Apache is open source software, anybody can read and contribute to the original source code without charge. Due to its open-source nature, Apache is particularly well-liked by programmers who have created and customized their own modules to add certain functionality and enhance its fundamental components.
One advantage of Apache is its capacity to manage heavy traffic loads with little configuration. With its modular functionality at its heart, Apache scales easily, and you may configure it to work whatever you wish. If you want Apache to be lighter and more effective, you can also eliminate unnecessary components.

**The Apache Web Server's features**

- Handling of static files
- Loadable dynamic modules
- Auto-indexing
- .htaccess
- Compatible with IPv6
- Supports HTTP/2
- FTP connections
- Gzip compression and decompression
- Bandwidth throttling
- Perl, PHP, Lua scripts
- Load balancing
- Session tracking
- URL rewriting
- Geolocation based on IP address
- Handling of static files

**What Functions the Apache Web Server?**
The TCP/IP protocol is used by Apache to enable client-server communication over networks.The format and transmission of messages over the internet are defined by HTTP/S, which also provides guidance to servers and browsers on how to handle different requests and commands. 

The standard port for Hypertext Transfer Protocol Secure is 443 while the standard port for the unsecured protocol is 80.
Config files are used to configure the Apache server, By default, Apache listens to the requested IP addresses that are set in its configuration files. Here, one of Apache's many advantages is put to use.

Apache may accept and reroute particular traffic to specific ports and domains in response to requests for particular address-port combinations. Although Listen by default uses port 80, Apache can be configured to use multiple ports for each domain, enabling the hosting of numerous different websites and domains on a single server. With Apache, you can have domain1.com listening on port 80, domain2.com listening on port 8080, and domain3.com listening on port 443


A message sends an acknowledgment, whenever it reaches its intended receiver or destination. This message serves to inform the sender that their data has arrived successfully. The destination host or client sends a Not Acknowledged, message to notify the sender that the data has to be retransmitted in the event of a data transmission error or packet loss.


**Options to the Apache HTTP Server**

- Apache Tomcat
- Node.js
- Lighttpd
- Cherokee
- Microsoft IIS
- Appweb
- Hiawatha
- Nginx

**Installation on Ubuntu**

Apache web server is already available in our repository, so we can download it simply by a single command.

#apt-get install apache2

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vcr048rfhochqbp4j4l8.png)

After installation, we check webserver is enabled or not enable using systemctl enable apache2


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d9wcgnojjafzq27uwa6v.png)

we can check using the browser http://192.168.1.110/


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d82b1mo6f2db7zz1m4be.png)

boom!!!! our apache server is installed. 
Please keep in mind that there are several configurations available, which I will not go into in this article.
In future articles, I will try to cover and discuss them.