我是NodeJS的新手并且学习,我想知道如何使用NodeJS制作示例应用程序。 我在localhost上试过它,它正在工作。现在我试图将它公开托管到任何服务器,但它无法正常工作。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1/');

这是代码作为m.js保存在我的本地机器上,我运行:
$ node m.js
运行正常,当我在浏览器中以https://127.0.0.1:1337
打开它时我得到的输出为:
Hello World
我希望从远程服务器做同样的事情,即我有一个域www.example.com
,如果我用https://www.example.com:1337打开它
然后它应该像我以前一样在我的浏览器屏幕上显示:
Hello World
但它没有用。
答案 0 :(得分:1)
它实际上非常简单。只是不要使用任何IP,只需定义端口。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337);
console.log('Server running!');
同样正如Sach所说,你不能只将它上传到网络服务器。您必须安装node和npm,并且必须通过
实际运行代码$ nodejs application.js
答案 1 :(得分:1)
答案 2 :(得分:1)
以下是使用Apache2-Webserver的可能解决方法:
只需在conf.d中编辑虚拟主机(对于Ubuntu,您将在/etc/apache/
中找到它),运行a2enmod proxy
并重新启动Apache。
以下是可能的配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName your-domain.com
ServerAlias www.your-domain.com
ProxyRequests off
ProxyPass / http://127.0.0.1:1337/
ProxyPassReverse / http:/127.0.0.1:1337/
</VirtualHost>