curl dns缓存设置

Posted 三少~BackArchitect

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了curl dns缓存设置相关的知识,希望对你有一定的参考价值。

CURLOPT_DNS_USE_GLOBAL_CACHE 启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认启用。
CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen/file_get_contents 好很多。
2)fopen/file_get_contents在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。(设置header头应该可以)

 

 

SO,如内部有需求不断请求内网dns server,尽量加上,用curl

或者用DNSMasq



以上是关于curl dns缓存设置的主要内容,如果未能解决你的问题,请参考以下文章

Linux设置DNS地址及清理DNS缓存方法

linux的DNS反向解析,DNS缓存服务器,DNS主从域名服务的设置,DNS的分离解析

nginx dns缓存导致后端不通

怎么清除dns缓存批处理?

手动清除Google Chrome DNS缓存

浏览器缓存机制