我想要实现的是拥有一个中央Webmail客户端,我可以在ISP环境中使用它,但能够连接到多个邮件服务器。
我现在一直在关注Perdition,NGINX和Dovecot。 但是大部分文章都没有更新很长时间。
我真正关注的是NGINX imap代理,因为它几乎可以完成我需要的一切。 http://wiki.nginx.org/ImapAuthenticateWithEmbeddedPerlScript
但首先我遇到的问题是你不能再使用这些标志从源代码编译NGINX。 其次是这个项目的GitRepo https://github.com/falcacibar/nginx_auth_imap_perl
不提供有关更新项目的详细信息。
所以我想要实现的是拥有一个可以连接到我的位置驻留在数据库中的任何一个邮件服务器的webmail服务器。但该位置是主机名而不是IP。
答案 0 :(得分:1)
您可以告诉Nginx使用您设置的任何http网址执行auth_http。 您不需要专门的嵌入式perl脚本。
请参阅http://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html以了解Nginx使用的基于标头的协议。
您可以使用任何语言实现上述协议 - 如果您愿意,可以使用apache实现CGI脚本。 您执行auth和数据库查询,并在此脚本中返回相应的后端服务器。
(就个人而言,我使用的是python + WSGI服务器设置。)
假设您在http://localhost:9000/cgi-bin/nginx_auth.py
在您的Nginx配置中,您使用:
auth_http http://localhost:9000/cgi-bin/nginx_auth.py