2

前言

关于此教程

作为一名业余Nodejs开发者,因为公司都是做JavaC++的。。。我是在没有任何人可请教的情况下,一个坑一个坑坚(ku)实(bi)地踩过来的。作为对segmentdefault社区的回报,把自己微不足道的经验分享给其他初学者。

本教程的目的,就是帮助刚上手Nodejs的开发者童鞋尽快搭建好自己的第一个Nodejs服务器。即使是没有编程经验的新手,也希望能读下来,也会对整个服务器搭建有个基本的概念。

Why DigitalOcean?

官网: https://www.digitalocean.com/

相信Nodejs的初学者都知道 CNode 网站,作为国内最活跃的Nodejs社区,她官方推荐的也是DigitalOcean的服务。优点主要有2点:

  • 无需备案。

  • 便宜:每月几十块钱的套餐,基本满足大部分个人开发者的需求(我会告诉你我买的最便宜的咩...)。

缺点也很明显,就是机房都在国外,访问速度因为众所周知的原因可能会较慢。网上有很多帖子讨论哪个机房的速度快,反正我是脑子一抽筋就选了旧金山的机房,有的时候确实慢成狗,大部分时候还好。。。论穷人的耐受力。

价位和配置大家可以上官网自行查看,我简单截个图:

选择Unix系统版本

选择套餐

一、创建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. 准备yumrepo文件

在下载安装前,有一步准备工作不可或缺,那就是为yum设置下载MongoDB的配置文件。在/etc/yum.repos.d/路径下,存储着yum所有的repo配置文件,类似下图。你可能注意到了,里面有个mongodb-org-3.4.repo文件,就是安装mongo前需要准备好的。

yum-repo

接下来你懂得,在以上目录中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 <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就行了。

其他常用命令还包括:

pm2


结语

从写下第一行JavaScript,到发布自己写的第一个网站,编程菜鸟的我踩了无数的坑。即便一个小问题可能困扰我一个星期,希望此文能帮到同是初学者的你。填坑的成就感不就是写代码的乐趣吗~

最后,顺便安利下我自己写的一个客户信息及工单管理平台,适合初学者参考~~祝大家开发愉快!

参考文档

搭建Nodejs服务器

备注

文中的命令要是执行不了的话,多半是因为权限问题,在命令前面加个sudo就好。


uglybachelor
198 声望21 粉丝

Programmer wanna-be