设为首页 收藏本站
查看: 1284|回复: 0

[经验分享] 使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站

[复制链接]

尚未签到

发表于 2015-7-23 10:18:20 | 显示全部楼层 |阅读模式
  使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站
  服务器:aws ec2 Ubuntu 12.04 (64位)
web服务器:nginx1.3.5
缓存服务器:redis2.4.16
nodeJS: 0.8.8
框架:express 3.0.0
模板渲染:juicer
数据交互:websocket
前端展现:瀑布流
  我们使用nodejs来开发一个搜索网站 示例:http://sogego.com 并使用git版本控制工具来管理位于vps上的网站,让我们抛弃ftp工具来上传文件的方式,一键commit到网站目录下。
我们在nodejs服务端render数据到前端,并用juicer来渲染,然后在瀑布流waterfall中使用socket.io来无限制加载数据,用redis做服务器。
  技术交流加入QQ群:261654896

  一、先讲位于日本东京的服务器aws ec2
使用aws ec2,都说位于美国西海岸的ping值低,事实上比较一下美国西海岸、新加坡、日本到中国的距离就知道了,新加坡网络节点还要绕到意大利再回中国,这个地方的VPS根本没法用,慢的要死,事实上速度最快的要数位于日本东京的ec2机房了,建议大家使用这个,其ping值在上海或是宁波、深圳的地方可以低于80ms,而美国西海岸的ping值都大于250ms,日本东京要快得多。
  这和你是不是国人,爱不爱国没有关系,因为在上海到日本有一条海底光缆。
  先启动一个Instance,我们使用Ubuntu 12.04
aws ec2默认不让ping。你只需要点左侧Security Groups,再点右侧Inbound的All ICMP 确定就可以ping通了
最后说一下Bitvise SSH ,它比Putty可强大多了,而且还带有sftp功能。你不得不用。
  二、VPS Ubuntu 的配置
安装一些常用的比如 g++ make git libssl等
  最主要的是在这里配置好git服务器,并同时让git server 自动同步到网站目录下,也就是说,比如我在本地机器win7上 commit了代码到了git server,那么访问http://sogego.com它就是最新修改过的,而且是带有版本号的,这样方便以后出现错误做回滚操作,不使用ftp工具,而是使用aws的 pubkey ,用ssh的方式做commit操作,当然也可以使用sftp。
  安装Nginx来做负载均衡,让它指向nodejs的地址 比如:http://sogego.com
  安装redis来做缓存数据库,以后再详细说明在nodejs中使用redis的操作。
  三、程序开发
推荐webstorm开发工具,带有git和nodejs的语法支持,如果你非要用Notepad++,我个人只能说你是个二。
  我们在nodejs中使用最新的express 3框架,它与express 2有了一些改变
  我们不使用jade这个模板,原因是什么,自己去想吧,个人觉得与html相距太大,不习惯,
而是使用juicer,它是一个极限渲染模板,其写法与速度你自己试了就不会再用其它的
我已和juicer的作者沟通多次解决bug和添加功能,目前版本号是0.6.0.使用完全没有问题
  我们安装一个npm install jquery来分析抓取到的网页数据
  我们还要安装一个npm install iconv-lite它比iconv要快一些,用来解决非utf8编码,大多的国内网站还在使用gb2312的编码。
  我们再来安装一个npm install forever来永久启动你的nodejs程序,它的操作基本是forever start 你的nodejs文件名
forever stop 你的nodejs文件名
forever list
  为了开方的方便还来一个npm install node-dev,使用方法node-dev 你的nodejs文件名
这样当我们改变了nodejs,就不用手动重启,尤其是配合webstorm一起使用,因为webstorm不需要按crtl+s来保存,而是它自己即时保存,这样你的程序就会时实重启。
  我们在后台使用了redis那就再安装一个npm install redis来连接redis数据库
  我们还要使用websocket协议,而不是用ajax请求。所以再来一个npm install socket.io
  最后注意当我们使用nodejs 的Crypto模块时用到了base64,注意base64的 + 问题转为空格

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89747-1-1.html 上篇帖子: puppet学习之使用git实现puppet版本控制 下篇帖子: SonarQube Git 1.1 发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表