我已经习惯了典型的灯网络托管环境,您只需点击cpanel中的几个按钮,您的域就会被分区并映射到htdocs中的文件夹。我一直在使用node.js,做同样的事情似乎并不那么简单。如果我有多个节点应用程序并且我想将domain1.com:80和domain2.com:80各自路由到它自己的节点应用程序和端口,我该如何去做呢?我从哪里开始?
答案 0 :(得分:2)
这通常使用nginx完成。 Nginx是一个反向代理,是你放在infront node.js的一个软件。
server {
listen 80;
server_name www.domain1.com;
root /var/www/domain1;
location / {
proxy_pass http://localhost:1337; # this is where your node.js app_domain1 is listening
}
}
server {
listen 80;
server_name www.domain2.com;
root /var/www/domain2;
location / {
proxy_pass http://localhost:1338; # this is where your node.js app_domain2 is listening
}
}
答案 1 :(得分:1)
我不建议apache做这些,nginx更适合nodejs。
您可以在端口3000和3001上运行应用程序,
然后代理它到mydomain1:80,mydomain2:80。
要使mydomain1和mydomain2更接近端口80,这些都是关于DNS而不是apache。
没有办法在同一个端口上运行apache / nginx和你的节点httpserver。我会得到一个错误。
P.S。我不确定你能做这些@tipical lamp webhost
希望有所帮助
答案 2 :(得分:1)
如果您使用Express,则可以在Node中设置虚拟域。
用于启动服务器的代码看起来像这样。
var sys = require('sys'),
express = require('express');
var app = express.createServer();
app.configure(function() {
app.use(express.vhost('subdomain1.local', require('./subdomain1/app').app));
app.use(express.vhost('subdomain2.local', require('./subdomain2/app').app));
app.listen(3000);
});
然后,您将在每个子域中导出app
。
var app = express.createServer();
exports.app = app;
这是一篇帖子,详细了解vhost in Express.js。