Mastering Nginx

(Ron) #1

Using the Mail Module


NGINX was designed to not only serve web traffic, but also to provide a means of


proxying mail services. In this chapter you will learn how to configure NGINX as a
mail proxy for POP3, IMAP, and SMTP services. We will examine running NGINX


as a mail proxy server in the following sections:



  • Basic proxy service

  • Authentication service

  • Combining with memcached

  • Interpreting log files

  • Operating system limits


Basic proxy service


The NGINX mail proxy module was originally developed for FastMail. They had a


need to provide a single IMAP endpoint for their users, while hosting the actual mail
account on one of a number of upstream mail servers. Typical proxying programs of


the time used the classic Unix forking model, which meant that a new process was


forked for each connection. IMAP has very long-lived connections, which means
that these processes would stay around for a very long time. This would then lead


to very sluggish proxy servers, as they would have to manage these processes for
the lifetime of each connection. NGINX's event-based process model was a better


fit for this type of service. As a mail proxy, NGINX is able to direct traffic to any


number of mailbox servers where the actual mail account is hosted. This provides
the ability to communicate one endpoint to customers, while scaling the number of


mailbox servers up with the number of users. Both commercial and open-source mail
solutions, such as Atmail and Zimbra, are built around this model.

Free download pdf