服务器配置完成后,我的EC2实例中的端口80上有一台IIS服务器。我可以通过我的弹性IP访问它。 但我关闭了希望在端口80上启动节点服务器的IIS服务器。
现在,两个都不起作用!!我的节点应用程序侦听端口80,但无法使用弹性IP从外部访问。 我试图在IIS管理器中启动IIS服务器,看起来它打开了。但它不能在实例中使用(使用私有IP)或从外部访问。
我该怎么做才能修复它?
由于
Server.js
/*******************************************************************************************/
/*CREATE AND START SERVER*/
/*******************************************************************************************/
var fs = require('fs');
var html = fs.readFileSync('./public/index.html');
var server=http.createServer(function(req,res){
//res.write(html); // load the single view file (angular will handle the page changes on the front-end)
//res.end();
// application -------------------------------------------------------------
app.get('*', function(req, res) {
res.sendfile('./public/index.html'); // load the single view file (angular will handle the page changes on the front-end)
});
});
server.listen(80,'localhost');
答案 0 :(得分:1)
我建议使用相同的密钥对和安全组启动新实例。然后在新实例上移动弹性IP。
启动Node JS 假设AWS Linux AMI :
sudo yum update
sudo yum upgrade
sudo yum install gcc
yum groupinstall "Development tools"
wget -c https://nodejs.org/dist/v5.2.0/node-v5.2.0.tar.gz
#This is to download the source code.
tar -xzf node-v$ver.tar.gz
cd node-v$ver
./configure && make && sudo make install
然后你的 app.js :
var port = process.env.PORT || 80,
http = require('http'),
fs = require('fs'),
html = fs.readFileSync('index.html');
var index = require('./index');
var server = http.createServer(function (req, res) {
console.log(req.method + "sdf " + req.url + res);
if (req.method === 'POST') {
var body = '';
req.on('data', function(chunk) {
body += chunk;
});
req.on('end', function () {
res.writeHead(200, 'OK', {'Content-Type': 'text/plain'});
res.write (html);
res.end();
});
} else {
res.writeHead(200);
res.write(html);
res.end();
}
});
server.listen(port);
console.log('Server running at http://127.0.0.1:' + port + '/');
您的 index.html :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p>Hello</p>
</body>
</html>
这只是一个非常简单的Node JS实例
对于更强大的设置,我建议去EBS并启动其中一个样本。这更容易。
希望这有帮助
问题:用户尝试在端口80上创建http
服务器侦听并且运行快速格式
解决方案:使用 http
收听端口或express
- 两者同时不允许程序运行
答案 1 :(得分:0)
您仍然遇到与the comments here中描述的问题相同的问题。
当你这样做时:
server.listen(80,'localhost')
您告诉服务器从 localhost中侦听 请求,这意味着您明确忽略了所有外部请求。只需删除该参数即可收听来自所有地址的请求:
server.listen(80)