This post ran originally on blogs.apache.org/httpd.
Wouldn’t it be nice if you had an idea of how people use the software that you write? I wanted to have an idea how the Apache HTTP Server is being used, and which features users consider important. So, I set up a short online survey of eight questions and sent a link to it to the HTTP Server project user and developer mailing lists. Over the next week and a half, I got 134 responses. Here are the survey results in shiny pie charts with witty interpretation.
On which operating system do you typically use Apache HTTP Server?
This question, actually number two in the survey, received quite a few write-in responses. I had only the top four operating systems in the answer list, but respondents wrote in several more. One respondent wrote: “I use Apache simply because it works transparently on Linux and Windows,” and another “FreeBSD on my hosting service, Linux at the office.” One respondent wrote: “Estou começando a programar em php!” (I’m starting to program in PHP!) The following graph has all of the operating systems that appeared in the survey responses:
Linux and Windows make up the vast majority of operating systems in use, accounting for over 80%. Sliced another way, 80% of respondents uses Apache on Unix-like platforms.
Why all those write-ins? My theory is that it has to do with the desire to make one’s platform of choice known. Usually when we are asked this question, the asking is done by marketeers trying to save some money by cutting support for less popular platforms. If we don’t speak up, our platform might get cut. Fortunately, Apache doesn’t work this way: support for various operating systems and platforms is provided by the developer community. Whether a specific operating system is popular does not matter: as long as there are developers interested in supporting a platform, the Apache HTTP Server will run on it.
How do you typically obtain your Apache HTTP Server Software
Technically, the httpd project only releases source code: once the source code archive is up on the download servers, the project is done with the release. Anyone can download and compile the software for his own use. However, a lot of users obtain httpd through some other means. They don’t have the expertise to compile their own, or find it unnecessary because their Linux distribution comes with httpd already installed. Some platforms, like Windows, ship without a compiler and building Apache on it is non-trivial. When asked how they typically obtained their Apache HTTP Server software, this is how the user community answered:
A large minority of respondents compiles their own httpd from source. This is a little surprising: I assumed that more users would use packages from their distributions or third party downloads. Of course, most respondents learned about the survey from the httpd developer and user mailing lists: one can expect a large proportion of sophisticated users that have the expertise and wish to exercise control over their deployments that requires custom-built HTTP Server software. What’s interesting is the same data cross-referenced by operating system:
Third party packages are popular on Windows, which ships without a compiler. Also, it is not trivial to build httpd and its supporting libraries on the platform. It’s much easier to grab an installer, especially since members of the httpd developer community usually make one available. To the credit of the port maintainer, all respondents who run FreeBSD install their httpd from the ports collection.
Which version of Apache HTTP Server do you mostly run?
There is very little surprise here: Apache HTTP Server 2.2.x is the most popular by far:
Which application API modules do you use?
Respondents could select multiple answers to this question. PHP remains the most popular module: this is unlikely to surprise anyone.
It’s interesting to see a strong showing for the good old CGI interface. The results may be slightly skewed by the fact that mod_python is no longer actively developed: as several people noted, its role has been taken over by mod_wsgi. I also did not include several integrations that might prove popular, like FastCGI.
How important are the following features of Apache HTTP Server to you?
This question allowed respondents to indicate how important various features of httpd are to them.
The features people feel most passionate about are clearly SSL support and URL rewriting/mapping: these each got about 50% “can’t live without.” Nobody does not care about URL rewriting. Scalability and extensibility are important, but aren’t “can’t live without” features. The easy configuration gets only a small amount of passion: I guess that if you are familiar enough with httpd to fill out the survey, you tend to not be intimidated by its configuration language.
Will you upgrade to Apache HTTP Server 2.4 when it is released?
At the time of the survey, version 2.4 of the server had not been released. Asked whether they would upgrade immediately upon release, most respondents chose the safe route of waiting a while. A few intrepid souls (fewer than 20%) planned to upgrade immediately.
In which environment do you mostly use Apache HTTP Server?
This was the only demographic question in the survey: an attempt to learn a little bit about the respondents.
Almost half of the respondents use httpd in a small or medium-sized business, and only one eight work in a Fortune 500 company. This discrepancy may be partially caused by the fact that there are millions of small and medium businesses, and the number of Fortune 500 companies is limited to… 500. Consultants and non-profit organizations are well represented; government respondents are a small minority.
If I could improve one thing about Apache HTTP Server, it would be…
This was a free-form write-in question: respondents could fill in whatever they wanted. Just under half of the respondents took advantage of this opportunity. The full list of responses will be shared with the HTTP Server development community, but I will quote a few.
Some respondents wanted to improve the feature set, such as:
- “A more advanced interface for adding or removing backend servers in reverse/balancer situations”
- “Proper cluster synchronized cache”
- “Easy cache control”
Quite a few addressed the configuration process:
- “Ease of configuration”
- “The overall configuration spaghetti jungle. While I do understand the–extreme–flexibility, when you investigate someone else’s server, you have to wade through 10s of files for perhaps one website”
- “Easier configuration of virtual hosts”
- “Configuration file syntax; I’d completely re-do it to be more modern and less confusing”
- “Config process could be simpler.”
One person asked for “a config GUI.” Another suggested a fixed interval release cycle. Documentation was another frequently raised topic. It is tempting to address or rebut many of the comments. I purposely refrained from editorializing here: a discussion about these comments should develop within the development community, on the developer mailing list.
The survey confirmed several things I suspected. For instance, Linux and PHP are popular. Apache HTTP Server 2.2.x is by far the most widely used version of the server. Other findings may be more unexpected: the importance of SSL and URL rewriting for so many, or the relatively strong showing of the CGI interface.
To my delight, one person offered in the write-in space: “It serves my needs completely” and another wanted to improve “nothing. The current product meets my needs. Thank you so much.”
You are very welcome.
Apache HTTP Server is a trademark of the Apache Software Foundation.