2013-04-30 73 views
0

我習慣於典型的燈網頁寄存環境,您只需點擊cPanel中的幾個按鈕,您的域就會被分區並映射到htdocs中的文件夾。我一直在使用node.js,做同樣的事情似乎並不那麼簡單。如果我有多個節點應用程序,並且我想將domain1.com:80和domain2.com:80分別路由到它自己的節點應用程序和端口,那麼我該怎麼做呢?我從哪說起呢?如何將多個域路由到多個節點應用程序?

+0

我認爲[express-vhost](https://github.com/vast-eng/express-vhost)可能對您的情況有用。 – robertklep 2013-04-30 15:36:08

回答

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 
    } 
} 

從這裏:Nginx Different Domains on Same IP

+0

真棒。最簡單的解決方案謝謝 – archytect 2013-04-30 22:06:59

1

我不建議更換阿帕奇做這些,nginx的適合用更好的NodeJS。

您可以在端口3000和3001運行例如應用程序,

然後代理它mydomain1:80,和mydomain2:80。

要讓mydomain1和mydomain2解開端口80,這些都是關於DNS而不是apache。

Theres沒有辦法在同一個端口上運行apache/nginx和你的節點httpserver。你會得到一個錯誤。

p.s.林不知道在ü可以做這些@tipical燈的虛擬主機

希望它有助於

+0

謝謝!將使用EC2 – archytect 2013-04-30 22:04:37

1

你可以在節點設置虛擬域,如果您使用快遞。

您用來啓動服務器的代碼看起來像這樣。

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

+0

很好的信息,但我想我會堅持使用nginx – archytect 2013-04-30 22:06:42

相關問題