> Op 21 okt. 2022 om 19:42 heeft Brendan Braybrook <bren...@tucows.com> het > volgende geschreven: > > On 2022-10-21 04:29, spi wrote: >>> Am 21.10.22 um 13:14 schrieb Amol Kulkarni: >>> Nginx has an mail proxy for pop, imap, smtp. >>> Can it be used instead of director ? >> Nginx can authenticate imap/smtp (and probably pop3) users. If you that, you >> can define a backend server the session is routed to. Currently I use that >> approach to authenticate users by client certificates and route them to the >> appriopriate backend (well, I only have one ;-). > > we've recently switched to director, but we used to use nginx for this as > well (we started using nginx before director existed). if you load balance > the nginx proxies themselves, you can easily handle hundreds of thousands of > concurrent imap connections with them. > > in debian/ubuntu, i don't think the nginx packages include the mail proxy > bits. iirc, we had to compile nginx ourselves with the mail proxy bits > included. > > the nginx config is pretty simple, you have to pre-specifiy the capabilities > for each protocol and set up some sort of way for nginx to auth and get which > backend node to send to as spi notes (in this example, it's an http call): > > mail { > auth_http localhost:8080/cgi-bin/auth; > proxy_pass_error_message on; > > pop3_capabilities "TOP" "UIDL" "RESP-CODES" "PIPELINING" "AUTH-RESP-CODE" > "USER" "SASL PLAIN" "SASL PLAIN LOGIN"; > server { > listen 110; > protocol pop3; > proxy on; > } > > imap_capabilities "IMAP4rev1" "LITERAL+" "SASL-IR" "LOGIN-REFERRALS" "IDLE"; > server { > listen 143; > protocol imap; > proxy on; > } > } > > localhost:8080/cgi-bin/auth then just auths the user/pass that nginx gets > from the incoming request and returns success and the next hop for nginx to > proxy to. > > the only real difficulty is that you then need to write your own state system > into your cgi auth script to ensure that users get sent to the same backend > imap server if they already have an existing connection and have some way to > safely fail over to other backend imap servers should one go down. (it's nice > to have director handle this state stuff for you)
Although Director does not do health checks and down servers automatically. I was working on an open source program for that (as an alternative to Dovemon), but that plan is canceled with this announcement :)