应用程序频繁请求某些服务的相同域名 .
PHP-FPM提供前端请求,并且有cron作业启动多个PHP命令行进程 . 几乎每次都会执行对该域下的URL的请求 . 代码使用亚马逊php-sdk,它使用cURL进行Web请求 .
如何缓存重复的DNS查询(如果是)?
我知道单个php-fpm工作进程用于处理N个请求然后重新生成 . DNS缓存是在多个php-fpm工作者之间共享的吗?
服务器在CentOS和Debian上运行 . 我了解到默认情况下没有操作系统DNS缓存 . 安装一些操作系统智能DNS缓存包以缓存单个请求是否有意义?
服务的IP地址可能不经常更改,因此在 /etc/hosts
中对IP进行硬编码可能不是一个好主意 .
1 回答
我不知道您的CentOS和Debian是如何配置来处理DNS缓存的,通常所有操作系统都在从您的域SOA记录中读取刷新DNS缓存的时间 .
以下是如何检查任何域SOA值:https://mxtoolbox.com/SOALookup.aspx
Here is the situation with PHP cURL:
DNS缓存在2002年1月在cURL上实现 . 在此处阅读更多相关信息:
https://curl.haxx.se/mail/lib-2002-01/0076.html
您可以使用cURL打开或关闭DNS缓存
在这里阅读更多关于卷曲选项:
http://php.net/manual/en/function.curl-setopt.php