How to do it...

The upstream block directive looks exactly the same as the round-robin configuration, except we now explicitly tell NGINX to use the hash method—a reminder that this needs to remain outside of the server block directive. Here's our upstream block:

upstream localapp { 
    hash $remote_addr consistent; 
    server 127.0.0.1:8080; 
    server 127.0.0.1:8081; 
    server 127.0.0.1:8082; 
} 

Then, we'll define our server block directive:

server { 
    listen       80; 
    server_name  load.nginxcookbook.com; 
    access_log  /var/log/nginx/load-access.log  combined; 
    location / { 
        proxy_pass http://localapp; 
    } 
}