以下是补充的ExtMail Solution有关文档,主要是为希望进一步了解mail系统运行,并提高extmail效能的朋友准备,对于初学者而言,建议要先打好基础再进行测试。

1、增加FCGI支持

为extmail增加FCGI的支持,主要是为了获得优异的web效能,克服CGI不能应付大量访问及低效率的缺陷。根据我们的测试,CGI模式下的页面效率只有FCGI下的1/10~1/100,因此建议有条件的用户还是使用FCGI。日后ExtMail Solution的web CGI程序将全部都支持FCGI。

Extmail开发团队花了大量时间重新设计了FCGI server的进程管理模型,并参考了apache的机制,新版dispatch.fcgi 终于可以象apache一样定义max server数,min server(启动进程数)以及每进程服务次数,每进程执行时限等,可较好的利用系统cpu/内存资源,既保证不多占内存,又可保证请求数上升时能有足够进程数服务。

就我们搜索发现,目前网上还没有开源版的FastCGI server能实现上述自适应负载功能(例如php-fpm还未实现,POE等也未实现),所以Extmail的dispatch.fcgi也许是第一个实现了这个功能。

mod_fastcgi 是针对Apache Web服务器的FCGI支持模块 下载地址: http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz

安装mod_fastcgi :

 

shell

# wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
# tar xfz mod_fastcgi-2.4.6.tar.gz
# cd mod_fastcgi-2.4.6
# cp Makefile.AP2 Makefile
# make top_dir=/etc/httpd install

安装perl-FCGI 除了Apache需要FCGI的支持外,extmail也需要相应的perl-FCGI模块。

 

shell

# yun install perl-FCGI

配置虚拟主机:

 

shell

# vi /etc/httpd/conf/vhost_extmail.conf

增加内容如下:

LoadModule fastcgi_module modules/mod_fastcgi.so<Ifmodule mod_fastcgi.c>FastCgiExternalServer /usr/bin/dispatch.fcgi -host 127.0.0.1:8888 -idle-timeout 240</Ifmodule>#同时,去掉如下行:#ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/ #改为:Alias /extmail/cgi/ /usr/bin/dispatch.fcgi/<Location "/extmail/cgi">SetHandler fastcgi-script</Location>

重启Apache和fastcgi server开机自启动:

 

shell

# service httpd restart
# /var/www/extsuite/extmail/dispatch-init start
# echo “/var/www/extsuite/extmail/dispatch-init start” >> /etc/rc.d/rc.local

结束语:
通过此文档,读者应该能够较容易地架设一个功能较齐全的电子邮件系统。本文档将继续保持更新,逐步将一些高级的设置方法公布出来,争取ExtMail Solution更加完整,力求完美。

已知Bugs:
整个ExtMail Solution尽力将Opensource软件的优点发挥到极至,但免不了还是有bug。以下是几个已知的问题:

Amavisd-new

退信模板还是英文的 产生的汇报信息不够友好

Spam Locker

错误识别一些配置异常的mail服务器 与内容过滤器结合不够紧密

TODO 列表

支持SMTP 及 POP3/IMAP的TLS/SSL加密HTTP及SMTP/POP3等CA证书的配置更精细的Anti-Spam策略及关键字过滤系统安全配置(基于iptables)