Gra*_*ray 8 domain-name-system linux resolv.conf
我知道这一定是我缺乏理解,但这就是问题所在。
我们最近将 DNS 服务器从 192.168.1.1 更改为 .2,因此我访问了所有 8 个 linux 服务器并更改了 /etc/resolv.conf 以反映更改。请注意,它们都是静态的,不涉及 DHCP。
进行更改后,我可以立即使用 nslookup 和 dig 测试结果,一切看起来都不错。我做了一个 /etc/init.d/networking restart - 重新启动网络子系统 - 并在每台服务器上重新启动 apache 和 postfix,只是为了确定。
几天后,我收到一份报告,指出我们的网站不再发送电子邮件。仔细阅读日志,我发现 mod_php 进程无法解析 dns 条目以发送邮件。在我的头上敲了大约 30 分钟后,我重新启动了服务器,一切都恢复了正常。
第二天在不同的服务器上(使用 CentOS 而不是我们普通的 Ubuntu),我收到一个报告,指出电子邮件没有通过,并且确实查看日志表明 Postfix 无法解析名称。重新启动,它几乎立即发送所有排队的邮件。
那么我在这里错过了什么?我没有正确理解这个过程的哪一部分?
大多数应用程序在启动时(使用res_init
)初始化解析器一次,之后再也不初始化。这对于像 ping 这样的短期应用程序来说不是问题,但对于长时间运行的守护进程来说则更为严重。
Apache 进程(运行 mod_php)可能就是这种情况。重新启动 Apache 就足够了。