Non-HTTP upstream servers
So far, we've focused on communicating with upstream servers over HTTP. For this, we use the proxy_pass
directive. As hinted earlier in this chapter, in the Keepalive connections section, NGINX can proxy requests to a number of different kinds of upstream server. Each has its corresponding *_pass
directive.
Memcached upstream servers
The memcached
NGINX module (enabled by default) is responsible for communicating with a memcached
daemon. As such, there is no direct communication between the client and the memcached
daemon; that is, NGINX does not act as a reverse proxy in this sense. The memcached
module enables NGINX to speak the memcached
protocol so that a key lookup can be done before a request is passed to an application server:
upstream memcaches { server 10.0.100.10:11211; server 10.0.100.20:11211; } server { location / { set $memcached_key "$uri?$args"; memcached_pass memcaches; error_page 404 = @appserver; } location @appserver...