У меня были хорошие результаты при использовании node-http-proxy от nodejitsu.Как указано в их readme, они, похоже, поддерживают WebSockets.
Пример для WebSockets (взят из их GitHub readme):
var http = require('http'),
httpProxy = require('http-proxy');
//
// Create an instance of node-http-proxy
//
var proxy = new httpProxy.HttpProxy();
var server = http.createServer(function (req, res) {
//
// Proxy normal HTTP requests
//
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 8000
})
});
server.on('upgrade', function(req, socket, head) {
//
// Proxy websocket requests too
//
proxy.proxyWebSocketRequest(req, socket, head, {
host: 'localhost',
port: 8000
});
});
Его производственное использование не должно быть проблемой, поскольку оно используется для nodejitsu.com .Чтобы запустить прокси-приложение в качестве демона, рассмотрите возможность использования forever .