NGINX has gained justifiable fame as a very high‑performance web server. I think many people realize that NGINX can also be used as a reverse proxy, but they might not be aware of just what a powerful reverse proxy it is.
Let’s start by taking a step back and asking, what is a proxy server? I think Wikipedia has a good definition:
So a proxy server sits in between a client and the actual server that hosts the data the client is looking for. To the client, the proxy server appears to be the actual backend server, and to the backend server the proxy server looks like a client. To define a reverse proxy server we go back to Wikipedia:
The difference is that a proxy server sits between clients and just one backend server, but a reverse proxy server sits in front of one or more backend servers and decides which of them to use for each request.
Why would you want to use a reverse proxy server? There are number of benefits:
NGINX Plus introduces even more features to NGINX Open Source’s renowned web‑server capabilities, making NGINX Plus a full‑featured application delivery controller (ADC) able to take the place of proprietary hardware appliances.
The following are just some of the features available in NGINX Plus.
There are multiple load balancing algorithms to choose from, both weighted and unweighted. Session persistence is also supported. NGINX Plus can load balance HTTP, HTTPS, WebSocket, FastCGI, memcached, SCGI, SPDY [obsoleted by HTTP/2, which NGINX Plus also load balances], and uwsgi. Read more.
Both passive and active monitoring of backend server health is supported. If NGINX Plus is unable to connect to a node, that node is marked as down. Active health checks can also be configured to run periodically against backend nodes. In addition, the slow‑start feature can be used so that NGINX Plus slowly ramps up traffic to a node that has just come online, to avoid overwhelming it with a burst of heavy traffic. Read more.
Traffic can be routed based on any part of a request, such as the client IP address, host name, URI, query string, headers, etc.
Any part of a request or response can be modified, including headers, body, and URI. NGINX Plus can also add and delete headers. Read more.
Responses can be cached, and you can configure the types of content to cache and for how long. You can also purge items from the cache. Read more.
Gzip compression is supported, with fine grained control over which content to compress and when to use compression. Read more.
SSL/TLS decryption and encryption are supported and decryption can be done for many domain names using different certificates. Read more.
NGINX Plus statistics encoded in JSON format are available via a simple HTTP request. A dashboard web page is provided to display the statistics, or you can feed them to custom or third‑party monitoring tools Custom‑formatted logs can be configured for both local logging and export to syslog. Read more.
NGINX has many more features, such as support for video streaming, mail proxy support, GeoIP support, graceful restarts and upgrades without downtime, traffic shaping, connection limiting, and much more. For more information, visit us at nginx.com and nginx.org.
"This blog post may reference products that are no longer available and/or no longer supported. For the most current information about available F5 NGINX products and solutions, explore our NGINX product family. NGINX is now part of F5. All previous NGINX.com links will redirect to similar NGINX content on F5.com."