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...