By Sander Temme

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:

operating-systems-full.png

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:

how-obtained.png

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:

platform-method.png

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-version.png

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.

api-modules.png

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.

feature-temperature.png

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.

when-upgrade.png

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.

work-environment.png

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.

Conclusion

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.