Create a service Mesh inside your network using Nginx nodes.
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.
Pros
- 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!
Cons
- 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.
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.
Comments
Please log in to join the conversation