在这里请原谅我。我已经在Ubuntu 14.04上通过AngularJS和NodeJS设置了一个简单的网站应用程序。启动服务器后,该IP地址无法加载并引发连接失败错误。
我已经能够成功连接到AWS上的Ubuntu服务器
成功安装了npm,node,并提取了git repo
尝试通过在API文件夹中输入“ sudo nodejs server.js”来启动服务器
服务器启动,但是IP地址未加载项目。.在控制台中没有错误。.
这些是我从终端登录到SSH服务器后从头到尾的步骤:
ubuntu@ip-172-31-25-241:~$ sudo mkdir src
ubuntu@ip-172-31-25-241:~$ cd src
ubuntu@ip-172-31-25-241:~/src$ sudo git init (after installing git)
ubuntu@ip-172-31-25-241:~/src$ sudo git pull origin master (pulled repo)
ubuntu@ip-172-31-25-241:~/src$ sudo apt-get install npm
ubuntu@ip-172-31-25-241:~/src$ sudo apt-get install nodejs
ubuntu@ip-172-31-25-241:~/src$ cd API
ubuntu@ip-172-31-25-241:~/src/API$ ls
server.js
ubuntu@ip-172-31-25-241:~/src/API$ sudo nodejs server.js
Server Started on http://localhost:8080
Press CTRL + C to stop server
这是@JoKeRxbLaCk要求的来自server.js文件的代码:
// initialize Express
var express = require('express');
// run Express
var app = express();
app.use(express.static(__dirname + './../APP'));
app.get('/', function(req, res) {
res.send('Express is running!');
});
app.listen(80, function() {
console.log('Server Started on http://localhost:8080');
console.log('Press CTRL + C to stop server');
});
当我尝试使用命令“ nodejs server.js”而不是“ sudo nodejs server.js”时,出现此错误:
ubuntu@ip-172-31-25-241:~/src/API$ nodejs server.js
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at Server.listen (net.js:1135:5)
at EventEmitter.listen (/home/ubuntu/src/node_modules/express/lib/application.js:617:24)
at Object.<anonymous> (/home/ubuntu/src/API/server.js:15:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
我希望服务器不会引发错误,并且我的网站可以加载:(请帮忙!我知道我错过了一步,但不知道在哪里。
答案 0 :(得分:0)
您正在尝试在端口80上运行应用程序。在Linux上,端口<1024是特权端口,并且需要提升的特权才能运行。
由于您使用提升的特权运行,因此您的应用程序将以sudo身份运行。没有sudo,您无权使用端口80。
因此,您需要确保运行您的应用程序的用户具有正确的特权,或者使用在端口80上运行并通过非特权端口(例如8080)转发到您的应用程序的Apache或nginx之类的应用程序来管理您的应用程序
答案 1 :(得分:-1)
在AWS上,您必须手动打开要使用的任何端口。
这是该Open Port on AWS Ec2