Choosing a web server is about much more than picking something to generate HTML. A web server can do all sorts of interesting things. At the end of the day they all serve a website to someone requesting it. But there’s so much that can happen along the way. Think about what you need from a web server that might make your website programming and maintenance easier for you, and then find out where and how the web server can help. Chances are you’ll find some alternative web servers that uniquely fits your requirements. And they’re all free, so it doesn’t hurt to look and try and test. Most of these alternative web server apps run great in a container environment or virtual machine.
But before you proceed on to learning about alternative web servers, I recommend first considering your server environment. In order to install different packages you must be at least the private hosting level. This server environment provides complete control over the file system and allows you to install whatever you require.
Alternative Web Servers
This list of alternative web servers is certainly not exhaustive, but I have tried to compile a reasonable collection of popular options to meet a wide variety of needs. Here you will find a rundown of apps that start from the minimalist (someone looking for a very lightweight server for a simple website) and then proceeding to the more advanced (someone requiring a Java runtime environment).
You might be wondering, “Hey, I don’t see NGINX on this list?” NGINX is so popular now I’d scarcely consider it “alternative,” but as it warrants some recognition you may consider it mentioned.
Lighttpd, as its name suggests, is a lightweight web server focused on packing a lot of speed in a small profile, and without taxing your system too much. A small memory footprint is the idea, and that’s part of the goal of being a lightweight web server.
And yet, with Lighttpd you’re not sacrificing any of the contemporary features you need for running your app, like this: Auth, FastCGI, SCGI, URL-Rewriting and more. Lighttpd does all of this and makes it a priority to be standards compliant and easy to use.
A recent update includes the following:
- HTTP/2 enabled by default,
- mod_deflate zstd support,
- mod_ajp13 (new), and
And of course, Lighttpd is open source, offered under a revised BSD license, and available for UNIX/Linux and Windows operating systems. And it’s easy to install Lighttpd alongside PHP in Ubuntu.
Do you want a lightweight web server that automatically serves HTTPS without requiring additional configuration, and has no additional dependencies? The Caddy web server might be exactly what you’re looking for.
Yes, you read that right. Caddy provides automatic HTTPS and has no dependencies, which means you can install it on a container, or on a test server in a matter of moments and have a full web server at your command.
As opposed to other popular server written in the C language, Caddy is written in Go. And they claim that this provides increased memory safety. Why not try it out for yourself? You could install it with a one-liner on your own cloud VPS.
Caddy offers support for static file service as well as reverse proxy. So if you have a static site written in Markdown, you can actually use Caddy to do the Markdown rendering. Caddy provides a template system that can handle on the fly conversion of content. So no need to convert your Markdown to HTML before uploading it to the server.
Many years ago, a friend of mine told me he was installing Apache Tomcat on top of the conventional Apache installation on his personal server. I asked him why. He shrugged and said, “It’s faster.” I took him at his word. Many advanced level server administrators will have different reasons for using different web servers. And, depending on what kind of other apps they’re running, or what kinds of projects they’re working on, one server may be faster than another.
A particular use case for running Apache Tomcat is whether or not you want to run Java programs natively in your server. So if you know how to code Java, you can start coding a web app right away. If this describes you, then Tomcat is probably the web server you were looking for. You may also be interested in the WildFly web server.
We have an article on installing Tomcat in Control Web Panel (CWP).
You probably didn’t know that there was a web server out there with a graphical user interface you could use for configuration. I certainly did not know that. If that’s something that interests you (and why not?) the Cherokee web server might be worth a first, second, or third look. The Cherokee server provides a web interface called Cherokee-Admin, where you can do all of your configurations. Very convenient for those who want to avoid command line configuration. You can also get yourself a nice Cherokee shirt.
The Yaws web server, standing for “yet another web server,” is ideal for someone proficient in the Erlang programming language, since that is the language in which Yaws is written. But even if you are not particularly well-versed in that language, Yaws is still a powerful multi-threader server application capable of providing a high level of service. But like other alternative web servers listed here, it requires a higher level of system knowledge, and is probably not ideal for beginners. But keep an eye on it.
Like Tomcat, WildFly offers some special treats for Java programmers. WildFly provides a rull application runtime environment for Java programs. (This basically means that it is ideally suited to provide a hardware and software configuration for running Java apps.) WildFly is sponsored by RedHat, and they use it to build some of their enterprise applications. (You may also be interested in Jetty.)
Try Out a New Server
In the long run, there’s no reason to feel stuck using one web server. You can try out one of the ones listed here or keep a running list for whenever you feel like experimenting.
To easily try out different web servers, InMotion Hosting has private cloud options available, so you can quickl spin up and tear down as many server clusters as you might need.