日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里云ECS部署node.js及防火墙80端口开启

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云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 http://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 http://127.0.0.1:80');

  執行node app.js,即可運行服務器,控制臺顯示:

  NodeJS Server running at http://127.0.0.1:80
  用本地瀏覽器訪問阿里云的地址:
  http://你的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 http://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");
  或者直接不指定監聽的IP地址也可。

  評論里@木魚朋友提示可以listen 0.0.0.0,但我覺得應該有更好的處理方式,期待下次修正吧。


  ok,一切正常了,當然,隱藏的事情還有很多,是配置hosts文件好?還是在代碼里配置好?有什么利弊?暫且不深究,今天就記錄到這里了。 ?

轉載于:https://www.cnblogs.com/netlibo/p/3986004.html

總結

以上是生活随笔為你收集整理的阿里云ECS部署node.js及防火墙80端口开启的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。