การแก้ไขข้อบกพร่องและการแก้ปัญหาพร็อกซี Node.js

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

แนวทางปฏิบัติที่ดีคือต้องตรวจสอบว่าโค้ด Node.js ที่คุณเพิ่มลงในพร็อกซีใช้งานได้ก่อนที่คุณจะทำให้ใช้งานได้ ไปยัง Edge หัวข้อนี้กล่าวถึงวิธีแก้ไขข้อบกพร่องและแก้ปัญหาพร็อกซีที่มี Node.js หลังจากทำให้ใช้งานได้แล้ว

กำลังเพิ่มขนาดพูลการเชื่อมต่อเป็น ปรับปรุงประสิทธิภาพ

หากคุณสังเกตเห็นว่าโฆษณาทำงานช้า คุณอาจสามารถแก้ไขปัญหาได้โดยเพิ่มค่าเริ่มต้น ขนาดพูลการเชื่อมต่อ Node.js ที่มี maxSockets หรือ โดย การปิดใช้งาน Socket Pooling สำหรับข้อมูลเพิ่มเติมและโค้ดตัวอย่าง โปรดดู Node.js เคล็ดลับด้านประสิทธิภาพ: Socket Pooling ในชุมชน Apigee

การดูบันทึก Node.js

หากต้องการดูข้อมูลบันทึกเกี่ยวกับแอปพลิเคชัน Node.js ของคุณ ให้ทำดังนี้

  1. ในหน้าพร็อกซี API หลัก ให้คลิกพร็อกซีที่ต้องการดู
  2. ในหน้าสรุปของพร็อกซีที่เลือก ให้คลิกบันทึก Node.js ใน ด้านขวามือของแถบเครื่องมือ

ในหน้าบันทึก คุณสามารถเลือกช่วงเวลาของบันทึกที่จะดู ดังที่แสดงด้านล่าง ระเบียนในบันทึก การเรียกเมธอด HTTP, การเรียกสำเร็จหรือล้มเหลว, ข้อความconsole.log และอื่นๆ ป้อนคำค้นหา ในช่องค้นหาเพื่อแสดงรายการบันทึกทั้งหมดที่มีสตริงนั้น

การใช้เครื่องมือติดตาม

เครื่องมือติดตามมีประโยชน์สำหรับการแก้ไขข้อบกพร่องของพร็อกซีทั่วไป สำหรับข้อมูลโดยละเอียดเกี่ยวกับการใช้ เครื่องมือติดตาม โปรดดูที่การใช้การติดตาม เครื่องมือ

เอาต์พุตคอนโซลการพิมพ์

คุณสามารถฝังคำสั่ง Console.log ในโค้ด Node.js และดูเอาต์พุตในการติดตามได้ ของ Google เช่น คำสั่งต่อไปนี้พิมพ์ค่าของตัวแปร config.user:

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

หากต้องการดูเอาต์พุตของข้อความ console.log ในเครื่องมือติดตามให้เรียกใช้ API ในเครื่องมือติดตามแล้วคลิกแสดงผลจากธุรกรรมทั้งหมด เพื่อ เปิดแผงเอาต์พุต

สมมติว่าคุณเรียกใช้โค้ดต่อไปนี้...

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 เป็นพร็อกซีและเห็นข้อความ "เกตเวย์ไม่ถูกต้อง" ลองเพิ่มพร็อกซี Nginx การกำหนดค่าระยะหมดเวลาตามที่อธิบายไว้ที่นี่

เช่น

proxy_connect_timeout       60;
proxy_read_timeout          120;

การหมดเวลาที่เหมาะสมจะขึ้นอยู่กับระยะเวลาที่เซิร์ฟเวอร์ใช้ในการตอบสนอง การกำหนดค่าเอง ตัวอย่างเช่น ระยะหมดเวลาการอ่าน 45-60 วินาทีอาจเป็นการให้ ที่เหมาะสม

การกำหนดการตั้งค่าระยะหมดเวลาเป้าหมาย Apigee

นอกจากนี้ คุณยังกำหนดค่าระยะหมดเวลาเริ่มต้นของ Apigee ในองค์ประกอบ HttpTargetConnection ได้ด้วย ใน TargetEndpoint ค่าเริ่มต้นคือ

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>

ดูข้อมูลเพิ่มเติมได้ในข้อมูลอ้างอิงพร็อพเพอร์ตี้ปลายทาง

สำหรับข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องได้จากหัวข้อต่อไปนี้

ขั้นตอนถัดไป

สําหรับข้อมูลเกี่ยวกับการรองรับโมดูล Node.js ใน Apigee Edge รวมถึงข้อมูลเกี่ยวกับ การรองรับ HTTP/HTTPS, TLS และหัวข้อขั้นสูงอื่นๆ โปรดดูการทำความเข้าใจการรองรับ Edge สำหรับโมดูล Node.js