Nodejs:如果用 node 去检测 CDN 有没有正常,可靠吗?

Nodejs:如果用 node 去检测 CDN 有没有正常,可靠吗?
查返回头,还是查什么靠谱

8 回复

我觉得只要你定义的"正常"逻辑可靠,就可靠。啥服务端语言不能检测


cdn 分发?需要厂商接口吧。只要不是你的服务器蹦,应该能够正常访问。我猜你的意思是缓存问题。

像又拍,七牛这种,有没有接口呢?

应该都有的,我们公司用的腾讯云。可能接口服务能力有区别。找找页面或者直接提交工单即可。

不可靠。 你能访问不代表别人能访问(哲学问题)

官方不知道有没有这种接口

如#5 所说,后端检查有啥用。
都是前端检测的,不能访问以后就回源。

使用 Node.js 来检测 CDN 是否正常工作是完全可行的,并且可以通过多种方式实现,包括发起 HTTP 请求、检查响应状态码和响应时间等。下面是一个使用 Node.js 内置的 https 模块来检测 CDN 是否可靠的简单示例:

const https = require('https');

function checkCDN(url, callback) {
    https.get(url, (res) => {
        let data = '';

        // 接收数据块
        res.on('data', (chunk) => {
            data += chunk;
        });

        // 完成请求
        res.on('end', () => {
            callback(null, {
                statusCode: res.statusCode,
                responseTime: res.responseTime, // Note: responseTime is not a standard property, you may need to measure it manually
                data: data
            });
        });
    }).on('error', (err) => {
        callback(err);
    });
}

// 使用示例
const cdnUrl = 'https://cdn.example.com/testfile.txt';
checkCDN(cdnUrl, (err, result) => {
    if (err) {
        console.error('CDN 检查失败:', err.message);
    } else {
        console.log('CDN 检查成功, 状态码:', result.statusCode);
        // 你可以在这里添加更多逻辑来处理响应时间和响应数据
    }
});

注意:上述代码中的 res.responseTime 并不是标准属性,实际使用中可能需要手动记录请求开始和结束的时间来计算响应时间。通过这种方式,你可以有效地监控 CDN 的健康状况,并根据需要扩展检测逻辑。

回到顶部