您的位置:首页 > 大数据 > 人工智能

安装djbdns优化qmail邮件系统发送邮件速度

2012-05-29 18:20 330 查看
Qmail邮件系统在给具有多条MX的大型站点发送邮件的时候会报下面的错误:delivery 55371: deferral: CNAME_lookup_failed_temporarily._(#4.4.3)/,在qmail的官方网站上面了解到通过安装djbdns可以加速DNS解析速度,提高qmail邮件的发送速度和效率,下面是安装djbdns详细过程。

1.安装djbdns,在http://cr.yp.to/djbdns/djbdns-1.05.tar.gz可以下载该软件包。

[root@mail qmail]#tar -zxvf djbdns-1.05.tar.gz

[root@mail qmail]#cd djbdns-1.05

在Centos上面make之前,先在djbdns-1.05目录执行下面的命令:

[root@mail djbdns-1.05]# echo gcc -O2 -include /usr/include/errno.h > conf-cc(否则会报错)

[root@mail djbdns-1.05]# make

[root@mail djbdns-1.05]# make setup check

安装完成后,可以在/usr/local/bin的目录下看到如dnscache,tinydns等程序。

2.建立djbdns的配置文件。

[root@mail djbdns-1.05]# makedir -p /etc/dnscache

[root@mail djbdns-1.05]# dnscache-conf nobody nobody /etc/dnscache 127.0.0.1

[root@mail djbdns-1.05]# ln -s /etc/dnscache /service

[root@mail djbdns-1.05]# svstat /service/dnscache (启动服务)

3.查看djbdns服务,如果出现127.0.0.1:53端口在说明配置成功。

[root@mail ~]# netstat -antl |grep LISTEN |grep "53"

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN

4.修改DNS配置文件,在/etc/resolv.conf下面添加nameserver 127.0.0.1,推荐放在其它nameserver前面,这样DNS解析的时候会优先查找DNS缓存。





5.用dig 命令测试www.google.com.cn,第一次解析是通过互联网上面的DNS服务器进行解析www.google.com.cn,整个解析过程用了181毫秒。





6.当用dig命令在此解析www.google.com.cn域名时,服务器会直接调用本机的DNS缓存记录,DNS解析效率大大提升,几乎在瞬间就可以完成。





7.通过nslookup命令可以看到,当第二次解析www.google.com.cn域名的时候,是通过127.0.0.1,即本地DNS缓存返回的主机记录。





8.默认djbdns使用1MB的内存作为它的缓存空间,通过下面的命令可以调整缓存空间为100MB,然后重启dnscache即可。

echo 100000000 > /service/dnscache/env/CACHESIZE

echo 104857600 > /service/dnscache/env/DATALIMIT

svc -t /service/dnscache #重启dnscache服务

9.查看dnscache服务运行状态。

[root@mail ~]# svstat /service/dnscache/

/service/dnscache/: up (pid 19693) 7945 seconds

10.通过tail -f /etc/dnscache/log/main/current查看DNS缓存日志。





11.刷新Dnscache缓存。

有时候互联网上的DNS记录已经发生改变了,而本地DNS缓存还是旧的,可用如下命令来刷新Dnscache。

[root@mail ~]# /usr/bin/svc -t /service/dnscache

通过crontab定期自动刷新Dnscache,脚本内容如下:

[root@mail ~]# vim /root/sh/flush_dns.sh

#!/bin/bash

/usr/bin/svc -t /service/dnscache

[root@mail ~]# chmod o+x /root/sh/dns_flush.sh

添加crontab,每天凌晨自动执行。

[root@mail ~]# crontab -e

00 00 * * * /root/flush_dns.sh



本文出自 “朴实的追梦者” 博客,请务必保留此出处http://sfzhang88.blog.51cto.com/4995876/881909
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐