nginx vs. Apache HTTP Server vs. Puma

  • 2.31K
  • 892
  • 35.4K
  • -
  • 293
  • 0
  • 267
  • 75
  • 923

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.

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 Puma?

Unlike other Ruby Webservers, Puma was built for speed and parallelism. Puma is a small library that provides a very fast and concurrent HTTP 1.1 server for Ruby web applications.

Want advice about which of these to choose?Ask the StackShare community!

Why do developers choose nginx?
Why do you like nginx?

Why do developers choose Apache HTTP Server?
Why do you like Apache HTTP Server?

Why do developers choose Puma?
Why do you like Puma?

What are the cons of using nginx?
No Cons submitted yet for nginx
Downsides of nginx?

What are the cons of using Apache HTTP Server?
No Cons submitted yet for Apache HTTP Server
Downsides of Apache HTTP Server?

What are the cons of using Puma?
Downsides of Puma?

What companies use nginx?
10145 companies on StackShare use nginx
What companies use Apache HTTP Server?
7387 companies on StackShare use Apache HTTP Server
What companies use Puma?
95 companies on StackShare use Puma
What tools integrate with nginx?
17 tools on StackShare integrate with nginx
What tools integrate with Apache HTTP Server?
9 tools on StackShare integrate with Apache HTTP Server
No integrations listed yet

What are some alternatives to nginx, Apache HTTP Server, and Puma?

  • Microsoft IIS - Internet Information Services is a web server for Microsoft Windows
  • Apache Tomcat - An open source software implementation of the Java Servlet and JavaServer Pages technologies
  • Passenger - A fast and robust web server and application server for Ruby, Python and Node.js
  • Unicorn - Rack HTTP server for fast clients and Unix

See all alternatives to nginx

Securing Your API Ecosystem with the NGINX Controlle...
NGINX and F5: Our Continued Commitment to Open Source
Do I Need a Service Mesh?
Unicorn vs. Puma vs. Passenger: which app server is ...
Related Stack Decisions
Jerome Dalbert
Jerome Dalbert
Senior Backend Engineer at StackShare · | 6 upvotes · 663 views
atStackShare
Rails
Puma
Unicorn

We switched from Unicorn (process model) to Puma (threaded model) to decrease the memory footprint of our Rails production web server. Memory indeed dropped from 6GB to only 1GB!

We just had to decrease our worker count and increase our thread count instead. Performance (response time and throughput) remained the same, if not slightly better. We had no thread-safety errors, which was good.

Free bonus points are:

  • Requests are blazing fast on our dev and staging environments!
  • Puma has first-class support for WebSockets, so we know for sure that Rails ActionCable or GraphQL subscriptions will work great.
  • Being on Puma makes us even more "default Rails"-compliant since it is the default Rails web server these days.
See more


Interest Over Time