Create a service Mesh inside your network using Nginx nodes.
Updated February 18, 2019

Create a service Mesh inside your network using Nginx nodes.

Leonel Quinteros | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Nginx

Nginx is present at different levels across my projects. Sometimes is just a Web Server, others a Load Balancer or an API proxy with SSL/TLS management, it's just great that's so lightweight that you can deploy as many instances as you want, for different purposes and create a services mesh inside your organization's network.
  • Low memory footprint, high performance, low maintenance.
  • Modular, configurable, flexible. You can create totally different nodes from the same Nginx version. I.e. you can use 1 instance to run a Web Server and another to run a gRPC rate limiter.
  • Nginx Plus suite is awesome! and has really nice features for high end users as well. It complements really well with the core, open source products.
  • Great ecosystem for API and Microservices management and governance
  • Excellent Web Server, of course!
  • Some parts or modules form Nginx Plus suite would be really useful in the Open Source world. But it's just about paying the fee or implement it yourself though.
  • No .htaccess support (https://www.nginx.com/resources/wiki/start/topics/examples/likeapache-htaccess/)
  • Low diversity and extension of modules.
  • In one cloud provider, a simple (few directives, relatively low traffic) Load Balancer service would cost USD 25 per month, while the cheapest VM instance costs USD 5 per month. I have set up a Linux instance with just Nginx running as a Load Balancer with automatic SSL configuration using Let's Encrypt and it works pretty well for 1/5 of the price and I got my cheap high availability setup.
  • Web server memory usage stopped being an issue when moved from Apache to Nginx.
Other Web servers are either not performant enough or locked to a platform. The main competitor in my opinion is the Apache Web Server, that can be extended in functionality through a diverse set of modules to perform almost any task related to a network server. But at scale, I feel Nginx grows more linearly and can be more predictable on resource usage. Apache, specially when using external modules, can be more buggy or memory hungry due to implementation intrinsics of each third party's code.

Other web servers like IIS, J2EE server or even the new .NET Core Kestrel web server are locked to a platform, Windows for IIS, Java or .NET for the other 2. If you don't work with their platforms, they don't have a use case on the architecture.
When deploying API services, we need to take care of many aspects of the network where they work. Infrastructure is also a factor when limited, so you also need to limit and manage it according to its use. Nginx is great to construct these network nodes (HTTP, API Proxy) that connects everything and can add extra capabilities like security (ModSecurity, SSL/TLS) and availability (Load Balancer, Rate Limit).