Apache HTTP Server聽vs聽Cowboy聽vs聽nginx

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Apache HTTP Server
Apache HTTP Server

45.8K
7.6K
+ 1
1.4K
Cowboy
Cowboy

584
26
+ 1
15
nginx
nginx

57K
15.2K
+ 1
5.4K

What is Apache HTTP Server?

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.

What is Cowboy?

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.

What is nginx?

nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Apache HTTP Server?
Why do developers choose Cowboy?
Why do developers choose nginx?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
      Be the first to leave a con
        Be the first to leave a con
        What companies use Apache HTTP Server?
        What companies use Cowboy?
        What companies use nginx?

        Sign up to get full access to all the companiesMake informed product decisions

        What tools integrate with Apache HTTP Server?
        What tools integrate with Cowboy?
        What tools integrate with nginx?
          No integrations found

          Sign up to get full access to all the tool integrationsMake informed product decisions

          What are some alternatives to Apache HTTP Server, Cowboy, and nginx?
          Apache Tomcat
          Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations.
          JBoss
          An application platform for hosting your apps that provides an innovative modular, cloud-ready architecture, powerful management and automation, and world class developer productivity.
          Jetty
          Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty.
          Microsoft IIS
          Internet Information Services (IIS) for Windows Server is a flexible, secure and manageable Web server for hosting anything on the Web. From media streaming to web applications, IIS's scalable and open architecture is ready to handle the most demanding tasks.
          OpenResty
          OpenResty (aka. ngx_openresty) is a full-fledged web application server by bundling the standard Nginx core, lots of 3rd-party Nginx modules, as well as most of their external dependencies.
          See all alternatives
          Decisions about Apache HTTP Server, Cowboy, and nginx
          Tim Abbott
          Tim Abbott
          Founder at Zulip | 7 upvotes 88.9K views
          atZulipZulip
          nginx
          nginx
          Apache HTTP Server
          Apache HTTP Server

          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.

          See more
          Prometheus
          Prometheus
          Logstash
          Logstash
          nginx
          nginx
          OpenResty
          OpenResty
          Lua
          Lua
          Go
          Go

          At Kong while building an internal tool, we struggled to route metrics to Prometheus and logs to Logstash without incurring too much latency in our metrics collection.

          We replaced nginx with OpenResty on the edge of our tool which allowed us to use the lua-nginx-module to run Lua code that captures metrics and records telemetry data during every request鈥檚 log phase. Our code then pushes the metrics to a local aggregator process (written in Go) which in turn exposes them in Prometheus Exposition Format for consumption by Prometheus. This solution reduced the number of components we needed to maintain and is fast thanks to NGINX and LuaJIT.

          See more
          Scott Mebberson
          Scott Mebberson
          CTO / Chief Architect at Idearium | 5 upvotes 68.5K views
          nginx
          nginx
          Caddy
          Caddy

          We used to primarily use nginx for our static web server and proxy in-front of Node.js. Now, we use Caddy. And we couldn't be happier.

          Caddy is simpler on all fronts. Configuration is easier. Free HTTPS out of the box. Some fantastic plugins. And for the most part, it's fast.

          Don't get me wrong, it's not lost on me that Nginx is actually a superior product.

          But for the times when you don't need that extra performance, and complexity - take a look at Caddy.

          See more
          Simon Bettison
          Simon Bettison
          Managing Director at Bettison.org Limited | 6 upvotes 135.8K views
          atBettison.org LimitedBettison.org Limited
          PostgreSQL
          PostgreSQL
          Elasticsearch
          Elasticsearch
          Sidekiq
          Sidekiq
          Redis
          Redis
          Amazon ElastiCache
          Amazon ElastiCache
          Rails
          Rails
          RSpec
          RSpec
          Selenium
          Selenium
          Travis CI
          Travis CI
          Ruby
          Ruby
          Unicorn
          Unicorn
          nginx
          nginx
          Amazon CloudFront
          Amazon CloudFront
          Amazon SES
          Amazon SES
          Amazon SQS
          Amazon SQS
          Amazon Route 53
          Amazon Route 53
          Amazon VPC
          Amazon VPC
          Docker
          Docker
          Amazon EC2 Container Service
          Amazon EC2 Container Service

          In 2010 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.

          Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.

          PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.

          Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!

          Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.

          We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!).

          Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service

          See more
          Chris McFadden
          Chris McFadden
          VP, Engineering at SparkPost | 7 upvotes 130.8K views
          atSparkPostSparkPost