前言
关于此教程
作为一名业余Nodejs
开发者,因为公司都是做Java
和C++
的。。。我是在没有任何人可请教的情况下,一个坑一个坑坚(ku)实(bi)地踩过来的。作为对segmentdefault社区的回报,把自己微不足道的经验分享给其他初学者。
本教程的目的,就是帮助刚上手Nodejs
的开发者童鞋尽快搭建好自己的第一个Nodejs服务器。即使是没有编程经验的新手,也希望能读下来,也会对整个服务器搭建有个基本的概念。
Why DigitalOcean?
官网: https://www.digitalocean.com/
相信Nodejs
的初学者都知道 CNode 网站,作为国内最活跃的Nodejs社区,她官方推荐的也是DigitalOcean的服务。优点主要有2点:
无需备案。
便宜:每月几十块钱的套餐,基本满足大部分个人开发者的需求(我会告诉你我买的最便宜的咩...)。
缺点也很明显,就是机房都在国外,访问速度因为众所周知的原因可能会较慢。网上有很多帖子讨论哪个机房的速度快,反正我是脑子一抽筋就选了旧金山的机房,有的时候确实慢成狗,大部分时候还好。。。论穷人的耐受力。
价位和配置大家可以上官网自行查看,我简单截个图:
一、创建Digital Ocean账户,准备CentOS系统
整体步骤如下:
1. 创建Droplet
上官网,注册账户,选择套餐(关于套餐选择,可以自行Google下,各种大神分析各种套餐使用方式。当然除非你跟我一样毫不犹豫地选了5刀的乞丐版,一小时0.7美分~~~还是资本主义好!),最后创建droplet。
2. 系统初始配置
创建好droplet之后,就是要对CentOS(当然你也可以选别的,新手建议选CentOS)进行初始配置。可参考DigitalOcean的官方文档 initial-server-setup-with-centos-7。
为了照顾英语不好的同学,我把几个重要步骤翻译如下:
Step 1. 以root权限登陆
打开命令行(shell),输入ssh root@SERVER_IP_ADDRESS
,其中 SERVER_IP_ADDRESS
就是分配给你的droplet的公网ip地址(恭嘿你有了属于自己的ip~~~)。回车之后,会提示你输入密码,这个密码应该是邮件发你了。登陆成功之后会立即提示你修改密码。
Step 2. 创建新的用户
登陆后你相当于是在用命令行操纵服务器,所以可以直接在命令行中输入adduser yourname
,就会创建一个名字叫yourname
的用户,在用passwd demo
设置密码。
Step 3. 给予新创建的用户sudo权限
没有sudo
超级管理员权限,会各种不方便,所以可以在root账户下用gpasswd -a yourname wheel
命令,赋予sudo
权限。
系统初始配置基本完成了,到目前为止你已经可以在里面玩耍了,但是没有ssh key
验证的话,安全性会打折扣。如何进行ssh
设置就请大家参考上面链接里文章的后几节了。
二、安装NPM、MongoDB、Git
1. 安装NPM
没有npm
怎么能做Node开发,所以安装npm
必然是第一步。
安装的方式不止一种,可以直接下载压缩包,但是在服务器上明显不是最科学的方式。建议采用package manager
的方式下载,可参考官方教程。
照例把重要步骤翻译一下:
在服务器shell里输入curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
,会将最新的Nodejs v6
下载。完成后,再用yum
安装:yum -y install nodejs
。
备注:给不知道yum
是什么的同学简单科普下,它是CentOS、Fedora系统里预装的Shell前端软件包管理器,帮助开发者简便地安装一些常用软件。
2. 安装MongoDB
MongoDB
作为最受欢迎的非关系数据库,十分强大。同时又轻量,部署也不难,作为入门Nodejs,或者说入门数据库的不二之选。同样,用yum
来下载安装,可参考官方指导。重点部分如下。
Step 1. 准备yum
的repo
文件
在下载安装前,有一步准备工作不可或缺,那就是为yum
设置下载MongoDB
的配置文件。在/etc/yum.repos.d/
路径下,存储着yum
所有的repo
配置文件,类似下图。你可能注意到了,里面有个mongodb-org-3.4.repo
文件,就是安装mongo前需要准备好的。
接下来你懂得,在以上目录中touch
一个新文件,命名为mongodb-org-3.4.repo
,在其中写入以下设置信息:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Step 2. 安装、启动MongoDB
安装命令:yum install -y mongodb-org
。
启动命令:service mongod start
。
启动完成之后,保险起见,还是看下是否成功启动运行了,可以到/var/log/mongodb/mongod.log
路径下查看此log,如果有[initandlisten] waiting for connections on port
这一行,说明成功咯!同时,为了更安全的运行你的程序,最好执行此操作chkconfig mongod on
,能确保MongoDB
在系统重启时,也会一并重启,避免因为系统重启导致服务不可用。
备注:关于如何关闭、手动重启、卸载数据库等操作,都可以在上面的官方文档中找到。
3. 安装Git
相信大部分开发者的代码管理都是依靠git
了,那么要把代码部署到服务器上,git
是必不可少的。
安装git
可能是最简单的一步,命令:yum install git
。就这样git
就装好啦。
三、安装PM2
理论上来说,完成上面的工作,你的服务就能跑起来了。但是服务的进程管理,即便对于初学者来说,也是必不可少的一课。毕竟初学者代码bug多不稳定的话,crash后能及时重启、能实时监控等就显得更加重要。在这里,推荐的也是十分流行的进程管理工具pm2
。
首先要会的是安装,和其他所有Nodejs
的第三方包一样,用npm
即可:npm install pm2@latest -g
。这样,就全局安装了pm2
。
其次,当部署了代码之后,默认启动方式为node XXX
,XXX应该是你的启动文件。有了pm2
之后,你就可以pm2 start XXX
了。如果要实现自动重启,那么加一个--watch
就行了。
其他常用命令还包括:
结语
从写下第一行JavaScript
,到发布自己写的第一个网站,编程菜鸟的我踩了无数的坑。即便一个小问题可能困扰我一个星期,希望此文能帮到同是初学者的你。填坑的成就感不就是写代码的乐趣吗~
最后,顺便安利下我自己写的一个客户信息及工单管理平台,适合初学者参考~~祝大家开发愉快!
参考文档
搭建Nodejs服务器
备注
文中的命令要是执行不了的话,多半是因为权限问题,在命令前面加个sudo
就好。