A Web server is a computer system that hosts websites. It runs Web server software, such as Apache or Microsoft IIS, which provides access to hosted webpages over the Internet. Most Web servers are connected to the Internet via a high-speed connection, offering OC-3 or faster data transmission rates. A fast Internet connection allows Web servers to support multiple connections at one time without slowing down.
Web servers typically host multiple websites. Some only host a few, while others may host several hundred. Web servers that host websites for multiple users are called "shared hosts." This is the most common type of hosting solution and is used for personal sites, small business sites, and websites run by small organizations. Web servers that only host websites for a single person or company are called "dedicated hosts." These types of servers are appropriate for high-traffic websites and sites that require custom server modifications. Dedicated hosts are also more reliable than shared hosts, since there are fewer sites that can cause bottlenecks or other issues with the server.
Apache is an open-source and free web server software that powers around 46% of websites around the world. The official name is Apache HTTP Server, and it’s maintained and developed by the Apache Software Foundation. In addition to its popularity, it’s also one of the oldest web servers, with its first release all the way back in 1995. Some high-profile companies using Apache include Cisco, IBM, Salesforce, General Electric, Adobe, VMware, Xerox, LinkedIn, Facebook, Hewlett-Packard, AT&T, Siemens, eBay, and many more.
Nginx is an open source web server and the main alternative and competitor to the Apache HTTP Server. NGINX has been gaining in popularity since its inception and is used across a wide spectrum of applications for web serving, reverse proxying, caching, load balancing, media streaming, and much more. It is not capable of processing dynamic content natively. In order to handle a scripting language such as PHP, NGINX must pass the request to an external processor that handles the execution of the script and then it waits for the content to be sent back, rendered and ready to be served to the end user. This means admins need to configure communication via the protocols NGINX knows to use like http, FastCGI, SCGI, and uWSGI.