2016-09-28 184 views
0

在我活的服務器我有我的expressjs應用在NodeJS + ExpressJS - 如何將我的域名指向端口3000?

http://122.22.11.22:3000 

運行,但我怎麼能使用域名子域名呢?對於instace:

http://my-express.com 

http://exress.mymastersite.com 

我用快遞發電機來BTW創建我的快遞骨架。我在Linux Arch上。

任何想法?

裏面斌/ WWW我有這樣的代碼下面由快遞發電機產生的自動默認爲:

#!/usr/bin/env node 

/** 
* Module dependencies. 
*/ 

var app = require('../app'); 
var debug = require('debug')('mongoose-iot:server'); 
var http = require('http'); 

/** 
* Get port from environment and store in Express. 
*/ 

var port = normalizePort(process.env.PORT || '3000'); 
app.set('port', port); 

/** 
* Create HTTP server. 
*/ 

var server = http.createServer(app); 

/** 
* Listen on provided port, on all network interfaces. 
*/ 

server.listen(port); 
server.on('error', onError); 
server.on('listening', onListening); 

.... 
.... 
.... 

回答

0

你想要做的就是所謂的虛擬主機是什麼, 您可以使用nginx的做

讓你的快遞只監聽在localhost: server.listen(3000, 'localhost');

和設置您的ngnix就象這樣:

server { 
    listen 80; 

    server_name express.your-domain.com; 

    location/{ 
     proxy_pass http://localhost:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } } 

您可以根據需要添加儘可能多的虛擬主機。

+0

'ngnix'的替代方案?我有一個問題安裝在我的本地主機Ubuntu的,所以我不敢安裝它在我的活服務器拱Linux。 – laukok

+1

apache或haproxy也可以做到這一點。 或者您可以直接在nodejs中嘗試https://github.com/expressjs/vhost。 –