example.org
과 cname.example.org
을 두 개의 다른 node.js 앱에 매핑하고 싶습니다. 그러나 nginx와 같은 http 웹 서버는 사용하지 마십시오.Node.js : CNAME 레코드가있는 URL 경로
그리고 웹 프레임 워크는 express
입니다.
이렇게하려면 express 또는 node.js에 미들웨어가 있습니까?
example.org
과 cname.example.org
을 두 개의 다른 node.js 앱에 매핑하고 싶습니다. 그러나 nginx와 같은 http 웹 서버는 사용하지 마십시오.Node.js : CNAME 레코드가있는 URL 경로
그리고 웹 프레임 워크는 express
입니다.
이렇게하려면 express 또는 node.js에 미들웨어가 있습니까?
익스프레스 그래서 당신은이 작업을 수행 할 수 있습니다 연결 사용
var express = require('express'),
app = express();
app.use(express.vhost('example.org', require('./exampleApp/')));
app.use(express.vhost('cname.example.org', require('./cnameExampleApp/')));
app.listen(80);
GitHub의에 대한 예제도있다 : 여기 https://github.com/visionmedia/express/tree/master/examples/vhost
을 그리고 connect.vhost에 대한 참조 : http://www.senchalabs.org/connect/vhost.html
가어쨌든 2 노드 응용 프로그램이 동일한 호스트에서 호스팅되는 경우 nginx와 같은 프록시가 필요합니다.
var request = require('request');
var proxy = require('http').createServer(function (req, res) {
// distribute by request header 'host'
var targetHost = req.headers.host;
if (targetHost === 'example.org') {
req.pipe(request('http://your-node-app1' + req.url)).pipe(res);
} else if (targetHost === 'cname.example.org') {
req.pipe(request('http://your-node-app2' + req.url)).pipe(res);
} else { // not found or host is invalid
res.statusCode = 404;
res.end('host is not found!');
}
});
proxy.listen(80); // assume it listens to port 80
그것은 작동합니다, 감사합니다 :). – atupal