現有的線程庫非常嚴格地限制您對I/O的訪問,並且打算讓您運行您自己的CPU綁定的Javascript代碼,而不是提供數據。共享核心是certainly possible,但也有點痛苦。我認爲你最後的選擇是最可行的。您可以很容易地爲節點組建一個虛擬化系統。
這裏有幾個獨立的Express應用程序。
APP-one.js:
var app = require('express')();
app.get('/', function (req, res) {
res.send('This is app one.');
});
app.listen(3000);
APP-two.js:
var app = require('express')();
app.get('/', function (req, res) {
res.send('This is app two.');
});
app.listen(3001);
改變那些通過用分配替換listen
線到模塊:
app-one-virtual.js:
var app = require('express')();
app.get('/', function (req, res) {
res.send('This is app one.');
});
module.exports = app;
APP-2-virtual.js:
var app = require('express')();
app.get('/', function (req, res) {
res.send('This is app two.');
});
module.exports = app;
然後寫一個主應用程序,要求每個這些和代表的請求將它們基於傳入host
頭:
app-master。JS:
var http = require('http');
var appOne = require('./app-one-virtual');
var appTwo = require('./app-two-virtual');
http.createServer(function (req, res) {
if (req.headers.host === 'one.example.com:3000') {
return appOne(req, res)
}
if (req.headers.host === 'two.example.com:3000') {
return appTwo(req, res)
}
res.writeHead(404)
res.end('Site not found.')
}).listen(3000);
現在只需node app-master.js
和你設置。重複儘可能多的服務器,只要你喜歡。
我的具體環境是:我想使用Raspberry Pi來託管我爲家人創建的幾個項目。這些項目都有自己的(相當輕量級的)Node API服務器,但是Pi只是沒有內存在自己的進程中運行它們。 –