用nodejs+mongo做了一个自己的项目,想放到云主机上,做完了发现一头雾水,毫无头绪,但愿此文章能给和我差不多的新手帮助。 首先 怎么把代码弄到服务器上 话说java项目直接打包成war包,C#在vs里发布成dll,这nodejs怎么搞,就这也苦逼了半天。 结论:nodejs是脚本语言,不需要编译,你写的所有.js文件都要上传服务器。。。。。和php差不多 我的做法,在oschina里弄了个私人项目,传到oschina上,从上面克隆到服务器上。 cd dir //进入你放代码的目录 git clone https://git.oschina****/你的项目 cd 你的项目目录 node app.js //启动 如果需要更新 git pull origin 如果要分支 自己百度吧~
其次 云主机的选择 之前参加了一个线下的沙龙,有阿里的同学来分享alinode,他们自己修改了底层,做了一些监控,然后我就朝着这个方向选的。 钱也付了,主机开通了,发现alinode的服务器初始化版本都很低,node还是0.几版本的,还需要自己升级。 更苦逼的是楼主选错了主机,选了按量付费,还不能备案,还不能转包月,我可不想重新部署一份,放弃,转投了qq。 结果发现qq要便宜一点(不算打广告吧,实话实说啊),而且也有node环境,于是就搞了一个,但是alinode那高大上的监控肯定没了,基本的cpu啊,内存监控还是有的。 艰苦的备案中~
然后 部署 主机开通后,弄个putty直接本地ssh连接。
- 先检查node的版本,什么?太低?升级,怎么升级?去菜鸟网络里看教程吧。。。 什么wget不下来,。。。。。先本地下载,上传自己别的主机,或者其他人的主机,再wget试试。https不行?那换成http试试。
- npm版本太低?升级!怎么升级?如下: npm install npm -------后面的参数
- nginx安装 这个麻烦啊 ,还要装一堆,对于c#开发来说如噩梦一般,还要wget代码,然后编译,然后安装,我去~ 自己百度吧。 nginx的部署,复杂的我也不会,我就是把nginx的80端口指向了nodejs的3000端口。 怎么配 还是百度下吧,我发下我的配置: upstream nodejs { server 127.0.0.1:3000; #server 127.0.0.1:3001; keepalive 64; }
server { listen 80; server_name www.域名.cn 域名.cn;//写本文的时候发现这个地方还写错了,还解析成功了,见了鬼了,我也不知道这个有没有用。 access_log /usr/local/nginx/log/access.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_set_header Connection “”; proxy_pass http://nodejs; } } nginx的重启: cd /usr/local/nginx/sbin ./nginx -s reload
数据库 安装mongodb,建表 这个不难的,自己百度吧,麻烦的可能会wget不下来,就像上面说的把https换成http,或者借别人的主机用下。 域名解析 这个不说了吧。
最后 启动 node app.js 关闭后进程就over了,怎么办? 感谢cnode,我用的forever。 npm install forever cnode里朋友发的帖子里还提了sudo,不知道干啥的,我加了报错,就没加。 装好后 forever start app.js -harmony //我用了koa,yield,所以要-harmony forever stop app.js //关闭
差不多了吧。本人菜鸟,好多linux命令也不会,nodejs全自学,祝大家好运! 老鸟请忽略~