Overall Satisfaction with Nginx
We use Nginx as the primary reverse proxy for all of our web services. We manage several dozen web applications, for many different clients, and Nginx allows us to quickly route requests to the correct service. Since we use Kubernetes to manage services, it is fast and simple for us to add new routes to our Nginx service. Nginx also manages our SSL, allowing us to deliver content securely.
- Straight-forward configuration format that users of all skill levels can learn, and yet is powerful enough for the huge breadth of features that Nginx provides.
- Massive scale right out the box. We've never had a Nginx instance overwhelmed by requests, and if we did it would be trivial to spin up more Nginx instances to handle the load.
- SSL termination means that we can deliver content over HTTPS without needing our individual services to require TLS support. This saves us a lot of time and headache while keeping us secure.
- Nginx is open-source and free, meaning that anyone can use it to power their services, from individual projects to billion-dollar websites.
- The open-source flavor of Nginx does not support automatic service discovery. In the time of Docker containers, Kubernetes and other managed cloud services, it can be difficult to manually update Nginx configurations as services change.
- Nginx is quite heavy for smaller projects and low-traffic scenarios. It requires knowledge of operating and configuring, which is separate from operating the main web server. There are managed alternatives that will get web services up faster and be more reliable.
- Nginx-plus has some very valuable tools that projects of any size could take advantage of. Unfortunately, it is very expensive as it includes SLA and support, putting it out of reach of all but the most well-funded projects.
- By using Nginx, we can host multiple web services on a single server, keeping our infrastructure costs lower.
- Nginx maintains our HTTPS connections, allowing us to keep our promise to our customers that their data is safe in transit.
- Due to Nginx's extremely low failure rate, our web addresses always return something meaningful, even when individual services go down. In sense, this means we are "always online" and allows us to maintain brand and support our customers even in the face of catastrophe.
We have used Traffic, Apache, Google Cloud Load Balancing and other managed cloud-based load balancers. When it comes to scale and customization nothing beats Nginx. We selected Nginx over the others because
- we have a large number of services and we can manage a single Nginx instance for all of them
- we have high impact services and Nginx never breaks a sweat under load
- individual services have special considerations and Nginx lets us configure each one uniquely