我的 php 应用程序发出的 curl 请求存在一些 DNS 问题。
nginx+php5-fpm 日志显示缓慢的脚本,故障点是 curl。
很困惑,因为我的 curl 脚本将超时和连接超时选项都设置为 3 秒(生产服务器)。
所以偶尔我会在我的脚本失败的地方得到一些错误。我模拟了 DNS 故障,我可以重新创建这些 php 脚本超时故障。
因此,我的 curl 随机进行 DNS 查找并失败。DNS 服务器没有响应,或者它正在限制我们(我们在峰值每秒发送数百个请求)。
我想我需要努力实现本地 DNS 缓存,但现在我可以做些什么来限制错误的 DNS 响应或使用 curl 的 DNS 超时?
我在想,是否CURLOPT_DNS_CACHE_TIMEOUT
也会缓存不良响应?如果是,我需要关闭它,如果它没有缓存任何响应/超时,那么我可以将它从 2 增加到 15 分钟以帮助解决问题?
关于如何阻止 curl & bad DNS 使我的网站崩溃的任何想法?