<div dir="ltr">Nginx has an mail proxy for pop, imap, smtp.<div>Can it be used instead of director ?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 21 Oct 2022 at 16:21, <hi@zakaria.website> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2022-10-21 10:51, Zhang Huangbin wrote:<br>
>> On Oct 21, 2022, at 5:23 PM, hi@zakaria.website wrote:<br>
>> <br>
>> I was wondering if one can achieve the same implementation with <br>
>> haproxy without dovecot director?<br>
> <br>
> The most important part of Director is it makes sure same mail user <br>
> always proxied to same backend IMAP server.<br>
> <br>
> If mailbox is in Maildir format (and stored on shared storage like <br>
> NFS), accessing it from different server may corrupt Dovecot index <br>
> files and mailbox becomes unaccessible. Director perfectly avoids this <br>
> issue.<br>
> <br>
> HAProxy can proxy mail user from same client IP to same backend IMAP <br>
> server, but not same mail user from different IPs.<br>
> <br>
> Quote (<a href="https://doc.dovecot.org/admin_manual/director/dovecotdirector/" rel="noreferrer" target="_blank">https://doc.dovecot.org/admin_manual/director/dovecotdirector/</a>):<br>
> <br>
> "Director can be used by Dovecot’s IMAP/POP3/LMTP proxy to keep a <br>
> temporary user -> mail server mapping. As long as user has simultaneous <br>
> connections, the user is always redirected to the same server. Each <br>
> proxy server is running its own director process, and the directors are <br>
> communicating the state to each others. Directors are mainly useful for <br>
> setups where all of the mail storage is seen by all servers, such as <br>
> with NFS or a cluster filesystem."<br>
> <br>
> ----<br>
> Zhang Huangbin, founder of:<br>
> - iRedMail: Open source email server solution: <br>
> <a href="https://www.iredmail.org/" rel="noreferrer" target="_blank">https://www.iredmail.org/</a><br>
> - Spider: Lightweight, on-premises Email Archiving Software: <br>
> <a href="https://spiderd.io" rel="noreferrer" target="_blank">https://spiderd.io</a><br>
<br>
Aha makes sense, although I was not able to see how can index files be <br>
corrupted when its if will going to be updated, its in same manner as <br>
from different connection, e.g. opening email account from different app <br>
clients, with different connections, does not corrupt the index files?<br>
<br>
Also, Is it the issue Director resolving as well its with maintaining <br>
the logged in dovecot connection to same backend? Anyhow, thanks for <br>
your valuable efforts in clearing this :)<br>
<br>
I wondered if there is any other solution to avoid corrupting index <br>
files? Perhaps if dovecot offer database indexing as well as login <br>
sessions, it seems that this would eliminate Director requirement, and <br>
offer better high availability, as for now userdb/authdb is only <br>
available per my knowledge, and using database cluster resolves the <br>
issue with user and auth queries during simultaneous connections to a <br>
different backends.<br>
<br>
Otherwise, it seems in large enterprise deployment with high <br>
availability a Director implementation will be needed, hopefully we will <br>
find an alternative solution by the time Dovecot 3 is released.<br>
<br>
I might need to get my head around building dovecot with customised <br>
modules and review the code which was removed and return it back, if <br>
anyone is planning to this, and well off ahead of me, please let me <br>
know, we might be able to help one another.<br>
<br>
With thanks.<br>
<br>
Zakaria.<br>
</blockquote></div>