使用独立的node.js服务器进行虚拟主机托管

kho*_*ter 38 node.js express

有没有办法当前使用node.js服务器进行虚拟主机托管(即在一个IP下托管多个域)?

ale*_*lex 29

当然,你可以专门使用bouncynode-http-proxy.

还有一个Express解决方案.看看这个例子.


Nic*_*ros 13

Web浏览器发送标题属性"host",用于标识他们尝试联系的域主机.所以最基本的方法是:

http = require('http');

server = http.createServer(function(request, response) {
    switch(request.headers.host) {
        case 'example.com': response.write('<h1>Welcome to example.com</h1>'); break;
        case 'not.example.com': response.write('<h1>This is not example.com</h1>'); break;
        default: 
            response.statusCode = 404;
            response.write('<p>We do not serve the host: <b>' + request.headers.host + '</b>.</p>');
    }
    response.end();
});
server.listen(80);
Run Code Online (Sandbox Code Playgroud)


Hol*_*dad 6

我会推荐express-vhost,因为其他解决方案基于代理服务器,这意味着每个虚拟主机都应该打开不同的端口。