2014-11-01 82 views
1

我正在这里进入新的领域。不是一个Linux人,但我从我的托管公司Ubuntu 12.0.4运行apache2获得了一个专用服务器。我有我的域名成功解析到该服务器(基本HTML'Hello World'索引页显示正常)。ubuntu上的nodejs默认文档

我已经安装了npm,node和express,它们(据我所知)工作正常。我已经添加了这个应用程序的根为“hello.js”:

var express = require('express'); 
    var app = express(); 

    app.get('/', function(req, res){ 
    res.write("Hello World"); 
    res.end(); 
    }); 

    app.listen(process.env.PORT, function(){ 
    console.log("Server Started"); 
    }); 

后我腻子(任期?)并运行“节点hello.js”我得到的“服务器已启动”的消息。但是当我进入我的域时没有结果。如果我有一个index.html页面,我会得到它的内容。如果我删除它,我会得到一个dir列表。

如何使hello.js的网站默认文档?或者更一般地说,如何设置入口点以使用此配置在lve服务器上运行节点站点?我可以编写节点,但部署将比预期难得多。谁能帮忙?

+1

什么是'process.env.PORT'?通过'console.log(process.env.PORT)'找出。也许你需要'app'listen('***'80' ***',function ...' – laggingreflex 2014-11-01 04:58:47

回答

1

你看到的是击中Apache的结果。不是你的Node.js服务器。

尝试在命令行启动服务器这样的:

$ PORT=8080 node hello.js 

然后将浏览器指向:

http://www.youdomain.com:8080/ 

,将开始在8080端口上的第一个参数你的node.js过程到app.listen是process.env.PORT这是一个环境变量,您可以通过上面的命令在命令行上设置。

只要在服务器和本地计算机之间的防火墙中没有阻止端口8080,就应该可以工作。

如果您希望Node.js在标准端口80上为您的整个网站供电,那么您需要先禁用Apache或将其设置为反向代理。

+0

当然,我想弄清楚的是如何让节点处理某些文档/站点的请求。我是linux/apache的noob,但是明白这是一个非常困难的事情。Node在站点上运行(控制台在启动服务器时响应)。如何获得路由到节点的请求到apache? – user2925994 2014-11-01 03:24:20

+0

Ooops!您的评论只有第一行时,我刷新,对不起! – user2925994 2014-11-01 03:27:05

+0

但是,我想节点为整个网站提供动力(我首先获得服务器的原因,我基本上想要一个活的沙箱)。你会推荐哪种路由,禁用apache或反向代理服务器? – user2925994 2014-11-01 03:31:28