javascript代码实例教程-阿里云ECS部署node.js及防火墙80端口开启

发布时间:2019-01-24 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-阿里云ECS部署node.js及防火墙80端口开启脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 第一篇竟然是node.js在阿里ECS上的部署遇到的小问题记录.

 

很多时候我们排除故障都会掉进小坑,但别小看是小坑,有时候挺烦人挺难缠的,主要还是基础知识匮乏导致思路混乱造成的,在这里记录下,给自己提个醒,也为网友指条明路,别像我一样乱折腾了。

 

环境描述:

 

1.阿里云ECS 单核、1G内存、1M带宽,基本就是最低配置了

 

2.阿里云提供的CentOS 6.5安全加固版

 

3.node.js 0.10.30

 

一,安装过程(尽量精简了,教程太多,不多说)

 

#yum install gcc-c++ oPEnssl-devel (根据你的需要安装或者更新)

#wget https://nodejs.org/dist/node-v0.10.30.tar.gz (nodejs下载地址,现在应该到0.10.32了,实际我没执行成功,我是本地下载后,sftp上传到服务器的,没有深究失败原因)

#tar –xvf node-v0.10.30.tar.gz

#cd node-v0.10.30

#./configure

#make && make install

 

以上安装过程如果你搞不定,那多是linux基础太太太太差,补习下吧。

二,测试过程

 

1.执行node -v,和npm -v 正确显示了版本号,没有问题。执行node后,执行console.LOG('hello');也没问题。

2.vi 编辑了一个app.js,测试下http是否正常,内容如下:

复制代码

VAR http = require('http');

 

http.createServer(function(req,res){

    res.wrITeHead(200,{'Content-type':'text/plain'});

    res.end('Hello Aliyun Node.js/n');

}).listen(80,"127.0.0.1");

 

console.log('NodeJS Server running at https://127.0.0.1:80');

复制代码

  执行node app.js,即可运行服务器,控制台显示:

 

  NodeJS Server running at https://127.0.0.1:80

   用本地浏览器访问阿里云的地址:

  https://你的IP

  你期待的是:浏览器里显示Hello Aliyun Node.js

  但抱歉,肯定访问不了。

  以前在本地,不管是Windows环境还是linux环境,这都是最常规的,最多去注意下80端口是否被占用,火墙是否开放即可。

 

  

 

三,排错过程

 

  既然是linux,不得不手动开启80端口的访问授权。

  查看CentOS防火墙信息:/etc/init.d/iptables status  

  添加对80端口的开放:

 

  /sbin/iptables -i INPUT -p tcp --dport 80 -j ACCEPT

 

  然后保存规则并重启防火墙:

 

  /etc/rc.d/init.d/iptables save

 

  /etc/init.d/iptables restart

 

  (注:因为主要是想测试基于node.js的微信公众平台,而微信公众平台只接受后端服务器访问80端口的应用)

 

  网上百度出来的结果,大部分就到这里了,有一些把对80端口的访问转移到其他端口的,我也没尝试。

   

  到这里,按常规你是不是觉得应该外网可以访问服务器了?

 

  呵呵,也只能呵呵了,我也是这么认为的,结果肯定是无法访问,脑袋一热,百度了一个多小时,没有一个靠谱的说法,也有人说阿里云ECS屏蔽了80端口的,也有人说权限不够的(我用root账户测试的),调来调去脑袋大了。

  为了确信node.js的http服务是正确运行的,我又用putty开启了一个控制台连到ECS,在node.js的http服务开启的状态下,执行:curl https://localhost,控制台返回了“Hello Aliyun Node.js”信息,同时,我更改了app.js的代码,在res.end语句后面紧跟着加入了一行:console.log(req.url);,这样,运行node app.js的控制台下显示了一个/和/favicon.ico,足够证明node.js服务器运行正常了。

  最后怎么解决的?呵呵,说是灵光一现也好,说是死马当活马医也好,我突然想到了hosts文件,路由出问题了?

  为了保险我查了一下:cat /etc/hosts,只显示了本地localhost、127.0.0.1和阿里云内网IP的绑定,没有外网地址的配置。

  为了不干扰其它端口上运行的程序,我没有修改hosts文件,而是更改了app.js代码:

  createServer(...).listen(80,"阿里云ECS外网IP");

 

  ok,一切正常了,当然,隐藏的事情还有很多,是配置hosts文件好?还是在代码里配置好?有什么利弊?暂且不深究,今天就记录到这里了。

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-阿里云ECS部署node.js及防火墙80端口开启全部内容,希望文章能够帮你解决javascript代码实例教程-阿里云ECS部署node.js及防火墙80端口开启所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。