Web server software is installed on top of the operating system and consists of platform systems which enable the hardware to function according to internet protocols. Common examples of this are HTTP, email, FTP, VPS, and cloud server software. Database frameworks, server-side programming languages, third-party libraries, network utilities, and web security applications, along with platform-specific plugins, modules, and extensions for each layer, are installed on top of the server software to build-out a customized environment for web development. Some web server packages like IIS only run on Windows servers, while others like Apache can be installed on both open source and proprietary operating systems. Web site files, HTML generating scripts, and code output read by a web browser resides on the top level of the server software stack where it is used to publish and transmit information for web page views. Recent trends in web hosting include the use of snapshots to install the full stack of server software, including web development scripts, in a single distribution package.
The use of web server platforms in web publishing is currently dominated by Apache, IIS, and Nginx. Together, these three packaged distributions are installed on about 90% of the web servers used to host active websites. The best way to approach web server platforms is to reference the full software stack:
- LAMP: Linux + Apache + MySQL + PHP, Python, & Perl
- WAMP: Windows + Apache + MySQL or MSSQL + PHP, Python, & Perl
- WIMP: Windows + IIS + MySQL or MSSQL + PHP, Python, & Perl
- LEMP/LNMP: Linux + Nginx + MySQL or MariaDB + PHP, Python, & Perl
Some important but less used variants on these configurations are:
- LAPP: Linux + Apache + PostgreSQL + PHP, Python, & Perl
- LLMP: Linux + Lighttpd + MySQL or MariaDB + PHP, Python, & Perl
- LEAP: Linux + Eucalyptus + AppScale + Python
LEAP is interesting in that it offers an open source alternative to the AWS “Elastic Cloud” service that allows web servers to replicate and scale to multiple versions of a single hardware instance using virtualization, functionality which none of the other web server platforms currently offer.
The web server platform software used in stack deployment is predominantly based on Apache, IIS, and Nginx, with a number of proprietary packages and specialized platforms available as alternatives.
- Apache HTTP Server: The Apache server package has been in primary use and continual development for over 20 years, maintaining leadership in the web server sector on open source foundations. The software manages HTTP file transfers, DNS settings, and IP addresses for domains, including integration with web programming languages through a module system.
- IIS (Internet Information Services): IIS manages most of the same processes as Apache (HTTP, FTP, SMTP, SSL, etc.) but uses a web server extension system rather than modules to add new functionality. IIS is usually bundled with ASP.net, Visual Studio, and other Microsoft Windows development tools. IIS is currently available with both the Windows Server 2016 and Windows 10 distributions, though many web servers deploy older versions of the software.
- Nginx: The reverse-proxy Nginx web server package will run on Linux, Windows, and BSD, providing support for HTTP, SMTP, POP3, IMAP, TLS/SSL, and many other internet protocols. The platform can manage up to 4 times more user traffic than Apache through advanced load balancing and page caching features. Nginx is often used in supporting the web hosting needs of the most popular sites in order to optimize hardware performance.
- LiteSpeed: The LiteSpeed server platform is a drop-in replacement for Apache with the ability to manage up to twice the user traffic on the same hardware. LiteSpeed is the 4th most popular server software platform on the web and is compatible with cPanel for use in web hosting. The license for a single installation of LiteSpeed costs between $14 and $92 per month.
- Lighttpd: The Lighttpd (“Lighty”) server platform is focused on providing a low resource web server framework that will outperform Apache under high user traffic conditions. Lighttpd is free and open source, running on Linux, Windows, BSD, and other operating systems. Lighttpd is regarded as providing better performance for web applications created with PHP, Python, Perl, Ruby on Rails, and other programming languages through its cached implementation of FastCGI.
- Zend Server: Zend Server is an enterprise product from Zend Technologies that allows the entire web server stack software to be deployed in an integrated manner with a pre-packaged distribution of 80+ PHP extensions used by developers. The platform supports Apache, IIS, and Nginx. The package is commonly used by PHP programmers working on the Zend Framework.
- Apache Tomcat: The Apache Tomcat distribution is designed for the development and publishing of applications built on the Java programming language. The package provides support for Java Servlets, JavaServer Pages (JSP), Java EL, and WebSocket frameworks under Java Enterprise Edition specifications which are not commonly supported in web hosting.
- Apache Hadoop: The Apache Hadoop distribution is a web server that is optimized for the needs of “big data” that is popular in cloud computing deployments. Apache Hadoop uses distributed file storage and includes an implementation of MapReduce which is commonly used in elastic cloud solutions for large-scale data processing requirements.
Although there are many other alternative server packages available on the internet, these platforms are the most widely used in web development today. Overall, Apache averages about 40% of the web server market share, IIS is used by approximately 30% to 33% of all active websites, and Nginx has about 20% to 25% of the total, with the other web server packages maintaining relatively niche oriented usage rates. In web hosting, use of Apache server on Linux dominates the market, with over 90% market share.
While there are a large number of database frameworks used in software applications, generally only MySQL and PostgreSQL are found on Linux hosting plans. Windows Server packages include a deployment of the MSSQL database software. In order to use other alternative database standards, it is required to install the packages independently on a VPS or dedicated server hosting plan.
- MySQL: The most popular database framework used in web hosting is MySQL, which is an open-source platform released under the GPL that will run on both Linux and Windows. MySQL is a relational database management system used by many blog, CMS, and ecommerce store scripts to store application data in tables for use in web development. phpMyAdmin is commonly provided by hosting companies for MySQL database administration through the web browser.
- PostgreSQL: The most common alternative to MySQL on Linux is currently PostgreSQL, which is an object-relational database platform developed on open source standards. Many web apps run on MySQL and PostgreSQL interchangeably, and the framework can also be installed on Windows servers. phpPgAdmin is provided by web hosts to manage PostgreSQL databases.
- MSSQL: Microsoft SQL Server is a relational database found on the Windows platform. There are a number of different editions of the package designed for different applications: Enterprise, Standard, Web, Business Intelligence, Workgroup, and Express. The Microsoft Azure platform offers a cloud deployment of MSSQL designed for web application programming.
Other alternative database frameworks used in web development include: MongoDB, MariaDB, SQLite, Percona Server, Apache Cassandra, CouchDB, BigTable, DynamoDB, and Redis. While some provide drop-in replacement functionality for MySQL, others use a “NoSQL” (non-relational) structure for better performance and different application support.
- PHP: PHP: Hypertext Preprocessor (PHP) developed as a means to use code written in C to access a database and produce HTML output for the construction of web pages. It has developed since 1995 to become one of the most popular programming languages on the web. WordPress, Drupal, Joomla, Magento, and many other web applications are primarily written in PHP, requiring a web server configured for either the 5.x or 7.x version to install and use.
- Python: Python is a powerful scripting language used in the construction of web applications and other software that combines elements of multiple different programming methods (object-oriented, multi-paradigm, structured, etc.). It is used extensively by Google, Wikipedia, Reddit, Yahoo!, and other companies on the web due to the performance advantages of its API. Django is a well-known framework for Python development. Python can be extended for additional specialized programming applications by installing additional libraries on a web server.
- Perl: The Perl programming language was one of the first frameworks used for the development of CGI scripts on the web, and currently exists in two main versions (5/6). The language dates back to 1987 and was modified for use on web servers out of Unix script programming. cPanel, Craigslist, RT, Priceline, Slashdot, and other popular websites use Perl extensively on their platforms. Currently, only about 2% of websites use Perl compared to other scripting languages.
- Ruby / Ruby on Rails: Ruby as a programming language dates back to 1993, while Ruby on Rails developed as a framework for deploying web applications in 2005. Ruby on Rails was widely popularized by Basecamp and 37 Signals. Ruby on Rails is used as the programming language to build websites for Airbnb, GitHub, Scribd, Hulu, Shopify, and other companies. Both Ruby and Ruby on Rails are normally installed on web servers as part of the LAMP stack.
- NET: The ASP.NET framework was released by Microsoft for web development in 2002. ASP.NET is frequently used to translate Visual Basic, C#, and Java code into web applications. Web hosting companies include ASP.NET platform tools on their Windows server plans, designed to integrate with Visual Studio in project development. DotNetNuke is the most popular CMS built with ASP.NET.