Node.js proxy'lerinde hata ayıklama ve sorun giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Bir proxy'ye eklediğiniz Node.js kodunun Edge'e dağıtılmadan önce çalıştığından emin olmanız iyi bir uygulamadır. Bu konuda, Node.js uygulamalarını içeren proxy'lerde dağıtımdan sonra hata ayıklama ve sorun giderme yöntemleri ele alınmaktadır.

Performansı artırmak için bağlantı havuzu boyutunu artırma

Performansın yavaş olduğunu fark ederseniz varsayılan Node.js bağlantı havuzu boyutunu maxSockets ile artırarak veya soket havuzunu tamamen devre dışı bırakarak sorunu çözebilirsiniz. Daha fazla bilgi ve örnek kod için Apigee Topluluğu'ndaki Node.js Performance Tips: Socket Pooling (Node.js Performans İpuçları: Soket Havuzu) başlıklı makaleyi inceleyin.

Node.js günlüklerini görüntüleme

Node.js uygulamanızla ilgili günlük bilgilerini görüntülemek için:

  1. Ana API proxy'leri sayfasında, görüntülemek istediğiniz proxy'yi tıklayın.
  2. Seçilen proxy'nin özet sayfasında, araç çubuğunun sağ tarafındaki Node.js günlükleri'ni tıklayın.

Günlükler sayfasında, aşağıda gösterildiği gibi görüntülenecek günlüklerin zaman aralığını seçebilirsiniz. Günlüklerde HTTP yöntemi çağrıları, çağrıların başarılı veya başarısız olması, console.log mesajları vb. kaydedilir. Dizeyi içeren tüm günlük girişlerini görüntülemek için arama alanına bir arama dizesi girin.

İzleme aracını kullanma

İzleme aracı, genel proxy hata ayıklama için kullanışlıdır. İzleme aracını kullanma hakkında ayrıntılı bilgi için İzleme aracını kullanma başlıklı makaleyi inceleyin.

Konsol çıktısını yazdırma

Node.js kodunuza console.log ifadeleri yerleştirebilir ve çıkışı izleme aracında görüntüleyebilirsiniz. Örneğin, aşağıdaki ifade config.user değişkeninin değerini yazdırır:

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

İzleme aracında console.log mesajlarının çıkışını görüntülemek için İzleme Aracı'nda API'nizi çağırın ve çıkış panelini açmak için Tüm İşlemlerden Çıkış 'ı tıklayın:

Aşağıdaki kodu çalıştırdığınızı varsayarsak...

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');
});

... konsol ifadeleri panelde görünür:

Nginx hedef zaman aşımı ayarlarını yapılandırma

Proxy olarak Nginx kullanıyorsanız ve "Bad Gateway" hataları görüyorsanız Nginx proxy zaman aşımı yapılandırmasını burada açıklandığı şekilde artırmayı deneyin:

Örneğin:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Sunucunun yanıt vermesinin ne kadar sürdüğüne bağlı olarak ideal zaman aşımı yapılandırmalarınızı belirleyebilirsiniz. Örneğin, makul bir arabellek sağlamak için 45-60 saniyelik bir okuma zaman aşımı ideal olabilir.

Apigee hedef zaman aşımı ayarlarını yapılandırma

Ayrıca, TargetEndpoint'teki HttpTargetConnection öğesinde Apigee varsayılan zaman aşımı değerlerini de yapılandırabilirsiniz. Varsayılan değerler:

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>

Ayrıca Uç nokta özellikleri referansı konusunu da inceleyin.

Daha fazla bilgi için

Hata ayıklama hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

Sonraki adımlar

HTTP/HTTPS, TLS ve diğer ileri düzey konularla ilgili bilgiler de dahil olmak üzere Apigee Edge'de Node.js modülü desteği hakkında bilgi edinmek için Edge'in Node.js modülleri desteğini anlama başlıklı makaleyi inceleyin.