你可以使用nodejitsu的node-http-proxy。我用它來部署和配置在不同子域下運行的多個應用程序。
例子:
var express = require('express'),
https = require('https'),
proxy = require('http-proxy');
// define proxy routes
var options = {
router: {
'www.myhost.com': '127.0.0.1:8001',
'*.h.myhost.com': '127.0.0.1:8002'
}
};
// express server for www.myhost.com
var express = express.createServer();
// register routes, configure instance here
// express.get('/', function(res, req) { });
// start express server
express.listen(8001);
// vanilla node server for *.h.myhost.com
var vanilla = https.createServer(options,function(req, res){
// handle your *.h.myhost.com requests
}).listen(8002);
// start proxy
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(80);
我不知道在HTTP代理服務器路由表(* .h.myhost.com)使用通配符,但由於這些值轉換爲節點 - 正則表達式http-proxy,我假設他們工作。
您測試過該解決方案嗎?會很有趣,看看它是否工作... – schaermu 2011-03-11 11:38:58
不,但感謝偉大的節點HTTP代理。我使用express vhost來解決我的問題。 – 2011-03-21 02:52:47