我正在进入新的领域。我根本不是 Linux 爱好者,但我从我的托管公司购买了一台专用服务器,运行 apache2 的 Ubuntu 12.0.4。我的域名成功解析到该服务器(基本 html“Hello World”索引页显示正常)。
我已经安装了 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");
});
在我输入(术语?)并运行“node hello.js”后,我收到“服务器已启动”消息。但当我进入我的域时没有结果。如果我有一个index.html 页面,我会得到它的内容。如果我删除它,我会得到一个目录列表。
如何使 hello.js 成为站点默认文档?或者,更一般地说,如何设置入口点以使用此配置在 lve 服务器上运行 Node 站点?我可以编写 Node ,但部署比预期要困难一些。有人可以帮忙吗?
最佳答案
您所看到的是攻击 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 或将其设置为反向代理。
关于node.js - ubuntu 上的 nodejs 默认文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26685875/