调试 Node.js 代理和对其进行问题排查

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

最好在部署之前确保添加到代理的所有 Node.js 代码都能正常运行 迁移到 Edge。本主题讨论对包含 Node.js 的代理进行调试和问题排查的方法 管理它们。

正在将连接池大小增加至 提升性能

如果您发现运行速度缓慢,则提高默认 使用 maxSockets 时的 Node.js 连接池大小,或 方法是停用 套接字池化。有关详情和示例代码,请参阅 Node.js 性能提示:套接字池

查看 Node.js 日志

如需查看有关 Node.js 应用的日志信息,请执行以下操作:

  1. 在主 API 代理页面中,点击您要查看的代理。
  2. 在所选代理的摘要页面中,点击 上的 Node.js 日志 工具栏右侧

在“日志”页面中,您可以选择要查看的日志时间范围,如下所示。日志记录 HTTP 方法调用、调用成功或失败、console.log 消息等。请输入搜索内容 字符串,以显示包含此字符串的所有日志条目。

使用跟踪工具

跟踪工具对于常规代理调试非常有用。有关使用 跟踪工具的详情,请参阅使用跟踪 工具

打印控制台输出

您可以在 Node.js 代码中嵌入 console.log 语句,并在跟踪记录中查看输出 工具。例如,以下语句会输出 config.user:

console.log('Logging in as %s', config.username);

要在跟踪工具中查看 console.log 消息的输出,请调用 您的 API 中,然后点击 Output from all Transaction (所有交易的输出) 打开显示结果面板:

假设您执行了以下代码...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... 控制台语句会显示在面板中:

配置 Nginx 目标超时设置

如果您使用 Nginx 作为代理,但看到了“Bad Gateway”(错误网关)消息,请按以下步骤操作:请尝试增加 Nginx 代理 超时配置,如下所述:

例如:

proxy_connect_timeout       60;
proxy_read_timeout          120;

根据服务器的响应时间,确定理想的超时时长 配置。例如,最好将读取超时时间设置为 45-60 秒, 合理缓冲

配置 Apigee 目标超时设置

您还可以在 HttpTargetConnection 元素中配置 Apigee 默认超时值 。默认值为:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

另请参阅端点属性参考

了解详情

如需详细了解调试,请参阅:

后续步骤

如需了解 Apigee Edge 中的 Node.js 模块支持,包括 有关 HTTP/HTTPS、TLS 和其他高级主题的支持,请参阅了解 Edge 支持 Node.js 模块简介