Nginx is an open-source web server, reverse proxy, load balancer, and HTTP cache. It was created by Igor Sysoev in 2004 to solve the C10K problem handling 10,000 concurrent connections efficiently. Its event-driven, asynchronous architecture allows it to handle many connections with low memory usage, making it well-suited for high-traffic production environments.
In modern web architectures, Nginx typically sits in front of application servers as a reverse proxy. It handles SSL termination, serves static files directly, and forwards dynamic requests to backend services. This separation of concerns allows application servers to focus on business logic while Nginx handles the network-level concerns efficiently.
For production web applications, Nginx is typically configured as a reverse proxy in front of Node.js, Python, Ruby, or other application servers. It handles SSL certificates, compresses responses, serves static assets from disk, and distributes traffic across multiple application instances.
For microservices architectures, Nginx serves as an API gateway and load balancer. It can route requests to different backend services based on URL patterns, add authentication headers, and provide a single entry point for external traffic. The rate limiting features help protect backend services from traffic spikes.
Nginx is free and open source. Nginx Plus, the commercial version with additional features and support, starts at 2,500 dollars per year per instance.