Node.js Proxy 偵錯與疑難排解

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

建議您先確保所有新增至 Proxy 的 Node.js 程式碼都能正常運作,然後再將程式碼部署至 Edge。本主題會探討如何針對含有 Node.js 應用程式的 Proxy 在部署後進行偵錯和疑難排解。

增加連線集區大小以提升效能

如果發現效能緩慢,可以使用 maxSockets 提高預設 Node.js 連線集區大小,或完全停用通訊端集區,或許就能解決問題。如需更多詳細資訊和程式碼範例,請參閱 Apigee 社群中的 Node.js 效能秘訣:通訊端集區

查看 Node.js 記錄檔

如何查看 Node.js 應用程式的記錄資訊:

  1. 在主要 API Proxy 頁面中,按一下您要查看的 Proxy。
  2. 在所選 Proxy 的摘要頁面中,按一下工具列右側的「Node.js 記錄檔」

在「記錄檔」頁面中,您可以選取要查看的記錄檔時間範圍,如下所示。記錄檔會記錄 HTTP 方法呼叫、成功或失敗的呼叫、console.log 訊息等。在搜尋欄位中輸入搜尋字串,即可顯示包含該字串的所有記錄項目。

使用追蹤工具

追蹤記錄工具適合用於一般 Proxy 偵錯。如要進一步瞭解如何使用追蹤記錄工具,請參閱使用追蹤記錄工具

列印控制台輸出內容

您可以在 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 當做 Proxy 使用,並看到「閘道錯誤」錯誤,請嘗試增加 Nginx Proxy 逾時設定,如下所示:

例如:

proxy_connect_timeout       60;
proxy_read_timeout          120;

視伺服器的回應時間而定,可能可以決定您想要的逾時設定。舉例來說,提供合理的緩衝區,讀取逾時 45 至 60 秒才是理想的做法。

調整 Apigee 目標逾時設定

您也可以在 TargetEndpoint 的 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 和其他進階主題的支援資訊,請參閱瞭解 Node.js 模組的 Edge 支援