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