TCP / application load balancing
While most people know NGINX for its outstanding role as a web and proxy server, most won't have used it beyond the standard web roles. Some of the key functionalities come from the fact that NGINX is incredibly flexible in how it operates. With the introduction of the stream module in 1.9, NGINX can also load balance TCP and UDP applications as well.
This opens up the possibility to load balance applications which don't have either any internal task distribution or any ability to scale beyond one server.
How to do it...
To use TCP load balancing, we first need to double-check whether the NGINX version has the stream module compiled. To do this, you can run the following command:
nginx -V
This will generate an output, displaying all of the compiled modules. The stream module is available if you see --with-stream
in the output. Consider this example:

If you don't have the required version, we covered how to install an updated version in Chapter 1, Let's Get Started...