Nodejs如何部署到阿里云 并且在外网可调用?

是这样的 我买了一个阿里云ECS云服务器,现在在研究后台的一些部署问题。首先已经在服务器上安装好iis,并且
可以正确显示iis的示例网站,也就是在服务器打开127.0.0.1  以及在外网 通过ip均可访问该实例站点。
所以为了避免是阿里云或者防火墙的一些阻隔,我把这个示例网站停止了,并且运行了服务器上的一个node文件,
其中代码也很简单,就是监听80端口,然后返回一个字符串:

var http = require("http");
//创建服务器
var server = http.createServer(function(req,res){
    if(req.url == "/"){
        //设置响应头
        res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
        res.end("成功!");
    }else{
        res.writeHead(404,{"Content-Type":"text/html;charset=UTF8"});
        res.end("失败");
    }
});
server.listen(80,"127.0.0.1");   

然后通过cmd运行该js文件,这个时候 在服务器打开127.0.0.1 可以正常在网页显示成功字样,但是在外网 通过http://xx.xxx.xx.xx 则显示网站链接错误的页面,看F12看请求 也没有收到服务器数据。
请问这样的原因是什么,该怎么做 才能把实现外网可以调用到node的后台数据呢?~~先谢谢大家了

阅读 3.5k
3 个回答

就像上面说的,可以server.listen(80, '0.0.0.0')
但是一般我们不会这样做,因为node自带的server只是基本的server,缺少一些高级的功能,比如: 负载均衡, 访问控制等,所以,我们会server.listen(8080, '127.0.0.1')运行在本地,然后将Nginx暴露到公网,Nginx反向代理本地的node server

server.listen(80,"0.0.0.0")

https://blog.csdn.net/zhy4212... 给你个链接

当我们写出第一个程序的时候,发现在外网不能访问,这个时候我们需要把端口打开,例如我们的端口是8888 我们需要

/sbin/iptables -I INPUT -p tcp --dport 8888 -j ACCEPT #开启8888端口 

我是centos 7 所以运行service network restart,运行成功,在外网访问到

作者:KinGofWorLd_v587
来源:CSDN
原文:https://blog.csdn.net/zhy4212...
版权声明:本文为博主原创文章,转载请附上博文链接!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题