var http = require('http');
var url = require('url');
var dns = require('dns');
var qs = require('querystring');
dns.setServers(['223.5.5.5']);
var server = http.createServer(function (req, res) {
var uri = url.parse(req.url);
var h = qs.parse(uri.query).host;
if (!h) {
res.end();
return;
}
if (uri.pathname === '/dnsQuery') {
//console.log(h);
dns.lookup(h, { family: 4, all: true }, function (err, addrs) {
if (err) {
console.error(h + ":" + err);
res.end();
}
else {
var result=addrs.map(r=>r.address).join(',');
console.log(h+':'+result);
res.setHeader('Cache-Control', 'public, max-age=3600');
res.end(result);
}
});
}
});
server.listen(8080);
很简单的一段代码,一开始还好,在并发量(也不多估计才几十到一百每秒)上来以后就查询的非常慢,前面挂的 nginx 60 秒后就 504 了,而且当我查询已经查询过的域名的时候也是 504 ,好像 nginx 的缓存没有生效一样,用 pm2 list 确认了 app 还在运行,并且 pm2 logs 里也有查询的记录
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.