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

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

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

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

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

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

วิธีดูข้อมูลบันทึกเกี่ยวกับแอปพลิเคชัน Node.js

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

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

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

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

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

คุณสามารถฝังคำสั่ง console.log ในโค้ด Node.js และดูเอาต์พุตในเครื่องมือการติดตามได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะพิมพ์ค่าของตัวแปร 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 เป็นพร็อกซีและเห็นข้อผิดพลาด "Bad Gateway" ให้ลองเพิ่มการกำหนดค่าการหมดเวลาของพร็อกซี 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