Apache vs. IIS: Which Web Server Should You Choose?
The web runs on several protocols: HTML (HyperText Markup Language); HTTP (HyperText Transfer Protocol); and URI (Uniform Resource Identifier) — or as some people call it, a URL. But underneath all of these protocols — the quick and dirty version of how information on the Internet is built and distributed — is this simple truth: Web pages are served by web servers.
There are two meanings to the term “web server”; one is the physical (or virtual) server that hosts applications, and the other is the software (or application) that delivers the web content (or other tasks, depending on the application) to the end user or system.
The actual box that hosts the applications can be physical or virtual. If you have a server closet or run a data center, you most likely have a complex infrastructure topology consisting of routers, firewalls, web servers, application servers and database servers. Often, these servers have combined roles (e.g., all of the applications and web servers are on the same machine), but this really depends on organizational security requirements and the complexity and performance of the infrastructure.
You can also host applications within virtual or cloud environments and have dedicated virtual instances for each type of server. Again, it depends on what you are trying to accomplish.
Using a particular type of physical/virtual server may determine the type of web-server software you use. If you are a Microsoft shop, more often than not you will choose to use IIS (Internet Information Services/Server) by Microsoft as your web-server application solution. If you are using a Linux distribution, you have other choices available to you, including Apache, NGINX and LiteSpeed.
The Most Popular Web Servers
So which web server should you choose to operate your website? That depends on a number of factors. But first, let’s take a look at popularity.
The web-server space is dominated by four web servers: Apache, Microsoft IIS, NGINX and Google Web Server.
A NetCraft survey in April 2014 showed the following market-share breakdown:
|Web Server||% Share (all sites)||% Share (active sites)||% Share (top million busiest)|
|Google Web Server||2.28%||8.33%||2.96%|
W3Techs reports a similar breakdown of market share (as of May 2014):
- Apache: 60.6%
- NGINX: 20.6%
- IIS: 13.9%
- LiteSpeed: 2.0%
- Google Servers: 1.3%
W3Techs report updates daily and investigates the technology of a website, not an individual webpage.
Trends are indicating that NGINX is gaining momentum within the web-server space while Apache, the long-time leader, is slowing down.
Choosing the Right Web Server
As with any infrastructure decision, your choice hinges on a few key items:
Cost and support tend to go hand in hand. While you may choose a particular web server because it is open source, there may be hidden costs associated with maintaining your choice — specifically, supporting it. Many open-source companies now charge for professional support, so when you have an issue, you can jump to the front of the line by contacting a dedicated and experienced support team instead of having to solve the problem yourself or going on a forum and parsing through other users’ discussions of the issue.
The capabilities you desire may also determine which web server you go with. One popular “stack” to consider is the pairing of operating system and web server with a database and programming framework. There are a few of these to consider, including:
- LAMP: Linux, Apache, MySQL and PHP
- WIMP: Windows, IIS, MySQL/MS SQL Server and PHP
- WAMP: Windows, Apache, MySQL/MS SQL Server and PHP
- LEMP: Linux, NGINX, MySQL and PHP
There are other variants of this as well. If you go down the “free” and open-source route, the most popular are LAMP and LEMP. It is important to note, though, that you can install Apache, MySQL and PHP on Windows-based machines.
A Breakdown of Each Web Server
As the statistics show, Apache, NGINX and IIS are the primary players in this space, with Google Web Server and LiteSpeed also appearing toward the “top of the bottom.” Below is a quick overview of each, including some of the popular sites that are using the respective applications.
- Home Page: http://httpd.apache.org/
- Cost: Open source, free, no licensing fees
- Is flexible because of ability to pick and choose various modules
- Has enhanced security (notable, because vulnerabilities typically are attacked in Windows-based machines)
- Has strong user-community support
- Runs on UNIX, Windows, Linux, Mac OS
- Is a process-based server, which means each simultaneous connection requires a thread that can incur significant overhead
- Popular Sites Using It: Baidu, Wikipedia, PayPal, Apple, Huffington Post
- Home Page: http://www.iis.net/
- Cost: Comes with Windows (could mean increased costs through licensing)
- Is supported by Microsoft
- Provides access to .NET framework & ASPX scripts
- Integrates with other Microsoft services (Active Directory, MS SQL server, ASP, etc.)
- Isn’t able to customize as much as open-source web servers
- Popular Sites Using It: (mainly Microsoft properties) Live.com, Bing.com, Microsoft, MSN, Barbie.com
- Home Page: http://wiki.nginx.org/Main
- Cost: Free (open source)
- Is known for speed and for being a reverse-proxy server
- Is an event-based server, which enables high performance and scale
- Is potentially better for a VPS (Virtual Private Server) environment
- Popular Sites Using It: WordPress.com, Pinterest, Tumblr, Instagram, CNet, Meetup.com, Weibo, Time.com
- Home Page: http://www.litespeedtech.com/products/litespeed-web-server/overview
- Runs at high speed
- Is compatible with Apache
- Popular Sites Using It: (No high-profile sites, see testimonials)
Google Web Server (GWS)
- Home Page: https://developers.google.com/cloud/ (Google Cloud)
- Popular Sites Using It: Google sites (various), Blogger
Of the options available, your development environment, coupled with the expertise of your developer and system administrator, will most likely dictate which web server you actually end up using. It is important to carefully weigh all of the options, balancing cost and support with the features and capabilities you require.
While choosing the more popular server may make sense, each choice truly depends on what you want to accomplish within your hosting environment. And if you are using shared hosting, you may not have that choice at all.
Regardless, talk to the community and do some research with your IT peers to find out what they like or dislike about a particular web server. You may be surprised by some of the answers.