Using the Mail Module
[ 58 ]
Combining with memcached
Depending on the frequency of clients accessing the mail services on your proxy
and how many resources are available to the authentication service, you may want
to introduce a caching layer into the setup. To this end, we will integrate memcached
as an in-memory store for authentication information.
NGINX can look up a key in memcached, but only in the context of a location in
the http module. Therefore, we will have to implement our own caching layer
outside of NGINX.
Authentication Request from NGINX
Is user/pass
in cache?
Retrieve value from cache
and return to NGINX
Store key/value
in memcached
No
Ye s
As the flowchart shows, we will first check whether or not this username/password
combination is already in the cache. If not, we will query our authentication store for
the information and place the key/value pair into the cache. If it is, we can retrieve
this information directly from the cache.
Zimbra has created a memcache module for NGINX that takes care of
this directly within the context of NGINX. To date, though, this code
has not been integrated into the official NGINX sources.