Nginx can be deployed to serve dynamic HTTP content on the network using FastCGI, SCGI handlers for scripts, WSGI application servers or Phusion Passenger modules, and it can serve as a software load balancer.
Nginx uses an asynchronous event-driven approach to handling requests. Nginx's modular event-driven architecture can provide more predictable performance under high loads.
According to Netcraft's November 2016 Web Server Survey, Nginx was found to be the second most widely used web server across all "active" sites (18.22% of surveyed sites) and for the top million busiest sites (27.83% of surveyed sites). According to W3Techs, it was used by 37.7% of the top 1 million websites, 49.7% of the top 100,000 websites, and by 57.0% of the top 10,000 websites.
HTTP proxy and Web server features
- Ability to handle more than 10,000 simultaneous connections with a low memory footprint (~2.5 MB per 10k inactive HTTP keep-alive connections)
- Handling of static files, index files and auto-indexing
- Reverse proxy with caching
- Load balancing with in-band health checks
- Fault tolerance
- TLS/SSL with SNI and OCSP stapling support, via OpenSSL.
- FastCGI, SCGI, uWSGI support with caching
- Name- and IP address-based virtual servers
- HTTP/2 protocol support
- WebSockets and HTTP/1.1 Upgrade (101 Switching Protocols)
- FLV and MP4 streaming
- Web page access authentication
- gzip compression and decompression
- URL rewriting
- Custom logging with on-the-fly gzip compression
- Concurrent connection limiting
- Request processing rate limiting
- Bandwidth throttling
- Server Side Includes
- IP address-based geolocation
- User tracking
- XSLT data processing
- Embedded Perl scripting
- Web application firewall with the Naxsi module
Performance vs Apache
Nginx was written with an explicit goal of outperforming the Apache web server. Out of the box, serving static files, Nginx uses dramatically less memory than Apache, and can handle roughly four times more requests per second. This performance boost comes at a cost of decreased flexibility, such as the ability to override systemwide access settings on a per-file basis (Apache accomplishes this with an .htaccess file, while Nginx has no such feature built in). Formerly, adding third party modules to nginx required recompiling the application from source with the modules statically linked. This was partially overcome in version 1.9.11 with the addition of dynamic module loading. However, the modules still must be compiled at the same time as nginx, and not all modules are compatible with this system; those require the older static linking process.
Virtuality Technology has an experienced team to offer consultation and customize a desirable solution for you. Please contact us for details.