node.js - Error: connect ECONNREFUSED 200.142.86.219:443 using google cloud functions随机出现
问题描述
我一直在尝试使用 node.js 和位于美国的 request-promise 库和 gCloudFunctions 向位于巴西的网页发出请求。当我访问它时,我使用我的数据登录。
问题是它有时有效,有时无效,当它没有时,我的日志中出现以下错误:
Error: connect ECONNREFUSED xxx.xxx.xx.xxx:xxx
在我的本地机器上,这个错误永远不会发生,它只发生在 gCloud Functions 上。
到目前为止我所做的:
重试请求 3 次以上(在同一初始页面上),如果它在第一次尝试时不起作用,则在下一次重试时它永远不会起作用。
尝试访问不同的网页,然后是所需的网页,与以前相同,有时有效,有时无效。
插入我请求的默认选项
rejectUnauthorized: false
。这使应用程序稳定了大约 24 小时,然后错误再次开始发生。
我的要求是这样设置的:
options = {
rejectUnauthorized: false,
jar: true,
headers: {
"Connection": "keep-alive",
"Host": "xxx.xxx.xxx.br",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36",
'Cache-Control': 'no-cache',
},
};
我不确切知道如何生成错误,但是当它正常发生时,它会继续发生,并且在一段时间后请求起作用,然后停止,依此类推。
我的猜测是关于谷歌云上的防火墙和 TSL。
解决方案
解决了迁移到巴西另一台服务器的问题,可能我试图访问的服务器阻止了我的请求,我的猜测是因为它们彼此相距很远,并且拒绝了这个“较低”优先级的请求。也让我的请求更快!
推荐阅读
- python - 使用 OuterRef 和 SubQuery 过滤 Prefetch 对象
- ruby-on-rails - 为什么 Rails 在生产环境中检测不到 AJAX 请求?
- python-3.x - 将雪男孩与谷歌助手链接时面临问题
- android - Flutter-使用 Android XML 作为 Widget
- javascript - index.html 中声明的 Vue.js css 和 js 不起作用
- haskell - 试图用divide -Haskell找出错误信息
- encryption - 仅使用密钥和盐使用 OpenSSL 解密文本
- django - django.db.utils.ProgrammingError:类型“光栅”不存在
- php - 学说 BETWEEN CURRENT_TIMESTAMP
- c# - 对象中元素的最佳集合并对其执行操作