Apache HTTP Server vs Cowboy: What are the differences?
Developers describe Apache HTTP Server as "The most popular web server on the Internet since April 1996". The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet. On the other hand, Cowboy is detailed as "Small, fast, modular HTTP server written in Erlang". Cowboy aims to provide a complete HTTP stack in a small code base. It is optimized for low latency and low memory usage, in part because it uses binary strings. Cowboy provides routing capabilities, selectively dispatching requests to handlers written in Erlang.
Apache HTTP Server and Cowboy belong to "Web Servers" category of the tech stack.
"Web server" is the primary reason why developers consider Apache HTTP Server over the competitors, whereas "Websockets integration" was stated as the key factor in picking Cowboy.
Apache HTTP Server and Cowboy are both open source tools. It seems that Cowboy with 5.57K GitHub stars and 997 forks on GitHub has more adoption than Apache HTTP Server with 2.19K GitHub stars and 652 GitHub forks.
What is Apache HTTP Server?
What is Cowboy?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Apache HTTP Server?
What are the cons of using Cowboy?
Sign up to get full access to all the companiesMake informed product decisions
What tools integrate with Cowboy?
Sign up to get full access to all the tool integrationsMake informed product decisions
We've been happy with nginx as part of our stack. As an open source web application that folks install on-premise, the configuration system for the webserver is pretty important to us. I have a few complaints (e.g. the configuration syntax for conditionals is a pain), but overall we've found it pretty easy to build a configurable set of options (see link) for how to run Zulip on nginx, both directly and with a remote reverse proxy in front of it, with a minimum of code duplication.
Certainly I've been a lot happier with it than I was working with Apache HTTP Server in past projects.
nginx or Apache HTTP Server that's the question. The best choice depends on what it needs to serve. In general, Nginx performs better with static content, where Apache and Nginx score roughly the same when it comes to dynamic content. Since most webpages and web-applications use both static and dynamic content, a combination of both platforms may be the best solution.
Since both webservers are easy to deploy and free to use, setting up a performance or feature comparison test is no big deal. This way you can see what solutions suits your application or content best. Don't forget to look at other aspects, like security, back-end compatibility (easy of integration) and manageability, as well.
A reasonably good comparison between the two can be found in the link below.
We use httpd in front of our Tomcat web server. Apache terminates the TLS connections and forwards to the embedded Tomcat server(s) for request processing. We also use it as load balancer for multi-server deployments.
Most known webserver. We are using Apache due to his htaccess feature but its just a backedn to proccess PHP. In font of Apache we are using NGINX to server static files
Apache splits static traffic from application traffic, as well as providing a selection of tools to assist in running of the site (rewrites, logging etc).
Primary web server, delivers PHP-rendered pages as well as static HTML content. Ruby CGIs deliver objects to browser-side code using REST/JSON
modproxybalancer provides highly concurrent end-user browser connections, and manages session routing to the application cluster