Use of an IMAP/POP proxy server allows routing users of these services to the Zimbra mailbox server on which their mailbox resides. For example, proxying allows users to enter imap.example.com as their IMAP server. The proxy running on imap.example.com inspects their IMAP traffic, does a lookup to determine which backend mailbox server a user’s mailbox lives on (mbs1.example.com, for example), and transparently proxies the connection from user’s IMAP client to the correct mailbox server.
The open source NGNIX proxy is bundled as part of the zimbra-proxy package. This package can be installed on mailbox servers, MTA servers, or on their own independent proxy servers. When the zimbra-proxy package is installed, the proxy feature is enabled.
Memcached is shipped as the caching layer to cache LDAP lookups. Memcached does not have authentication and security features so the servers should have a fill set up appropriately. The default port is 11211 and is controlled by
zimbramemcacheBindPort conf setting in zimbraserver.
When the proxy server is configured, the service ports on backend Zimbra mailbox server are changed to alternate ports. The proxy now services the standard ports for these protocols. This change is applied even if the proxy services are run on their own independent hosts, in order to distinguish and avoid confusion between the services.
Which mailbox servers participate in this lookup is determined by the zimbraReverseProxyLookupTarget server attribute on servers running the mailbox service. By default all mailbox servers participate in this lookup. Lookup is performed round-robin across configured mailbox servers. The result of the login name to mailbox server lookup are cached in memcached (an open source distributed in-memory hashtable). The memcached process is run alongside all IMAP/POP proxy services.