Nginx
Nginx (stylized as nginx and NGINX) is open source software for web serving, reverse proxy, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers.
Features
- Nginx is easy to configure in order to serve static web content or to act as a proxy server. Nginx can be deployed to also serve dynamic 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, rather than threads, to handle requests. Nginx's modular event-driven architecture can provide predictable performance under high loads.
- 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
- TLS/SSL with SNI and OCSP stapling support, via OpenSSL
- FastCGI, SCGI, uWSGI support with caching
- gRPC support since March 2018, version 1.13.10.
- Name- and IP address-based virtual servers
- IPv6-compatible
- WebSockets since 1.3.13, including acting as a reverse proxy and do load balancing of WebSocket applications.
- HTTP/1.1 Upgrade (101 Switching Protocols), HTTP/2 protocol support
- URL rewriting and redirection
- Mail proxy features:
- TLS/SSL support
- STARTTLS support
- SMTP, POP3, and IMAP proxy
- Requires authentication using an external HTTP server or by an authentication script
- Other features include upgrading executable and configuration without client connections loss, and a module-based architecture with both core and third-party module support.