从零开始在阿里云ECS服务器(CentOS)上配置Node.JS项目网站

一.购买阿里云服务器

首先我们进入 阿里云官网,在产品一栏中找到云服务器ECS。

在这里插入图片描述
购买一台适合自己的服务器,付款后进入主页面右上角的控制台。

在控制台中左侧栏找到云服务器ECS。

在这里插入图片描述
在云服务器ECS控制台的左侧栏找到实例一项,就可以看到我们之前购买的服务器了,同时也能看到服务器的公网ip。

在这里插入图片描述

点进服务器可以看到服务器的详细信息。如果在购买过程中没有要求设置密码的话,可以在详细信息中的重置实例密码来为服务器设置密码。

在这里插入图片描述

二.远程连接

我们通过Xshell来远程连接linux服务器。同时我们也要下载配套的Xftp用来向服务器传输文件。

打开Xshell,在弹出的窗口中选择新建。

在这里插入图片描述
在名称一栏中自定义该服务器在Xshell中的名称,在主机一栏填上控制台中的公网ip地址。

在这里插入图片描述
然后在左边栏选择用户身份验证,右边的方法选择 Password。用户名默认为root,密码为刚才在阿里云控制台设置的密码。

在这里插入图片描述
上面设置好后连接到服务器,当出现欢迎字样时说明已经成功连接到阿里云服务器了。

在这里插入图片描述

三.安装Node.JS

首先,进入Node.JS的官网查找之前项目的对应版本,以我使用的版本v14.15.0为例,进入对应路径,找到xz结尾的linux文件,右键复制其下载链接地址。

在这里插入图片描述
进入Xshell,连接服务器,下载刚才找到的Node链接对应的压缩文件。

输入

wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz

后面的链接可以换成刚才找到的对应版本的链接。

等待下载,下载好之后解压缩该文件。

tar xvf node-v14.15.0-linux-x64.tar.xz

这时通过Xshell上面的新建文件传输自动打开打开Xftp。

在这里插入图片描述
Xftp界面的左侧为你的电脑文件目录,右侧为服务器文件目录。
在这里插入图片描述
我们可以看到node文件是默认下载到根目录下root目录中的。这时可以直接对解压缩的文件夹改成更简单的名字(比如在这里我改成了node),方便后续操作。

接下来,我们要配置环境变量,设置软链接。

ln -s /root/node/bin/node /usr/local/bin/node
ln -s /root/node/bin/npm /usr/local/bin/npm

前一个地址为刚才解压缩文件的地址,根据自己实际情况进行更换。

执行之后,检测环境变量是否配置成功,在任意目录下执行

node -v
npm -v

若出现对应的版本号,则证明环境变量配置成功。

下面配置npm的淘宝镜像,执行

npm config set registry https://registry.npm.taobao.org

这时,我们的node就算配置完成。可以试试从Xftp中拖入一个Nodejs的文件到根目录下的home目录(网页服务器默认在/home下存放网页文件),然后在命令行中用node命令来启动。

node /home/app.js

这时我们可以在浏览器上输入公网IP+端口号来进行访问。

你可能发现此时在输入链接后服务器并没有响应数据,这是因为阿里云默认没有将端口开放出去,我们此时要到阿里云控制台手动开放js文件中的对应端口。

进入阿里云控制台,在实例一栏中选择服务器—更多—网络和安全组—安全组配置

在这里插入图片描述

选择服务器的配置规则。

在这里插入图片描述
点击手动添加。

在这里插入图片描述
在弹出来的一栏中配置端口开放。其中,目的里面输入你要开放的端口号(例如3000,5000等),在源中选择的默认第一个0.0.0.0/0,描述中可以备注你开放这个端口号的用途,方便日后查找。设置完后点击右面的保存。

在这里插入图片描述

再次在浏览器地址中输入公网IP+端口号就可以看到Node.JS相应的信息了。

我们的服务器可能不只同时运行一个服务,如果用node启动的话服务器就会进入等待状态,直到中断当前服务才能开启下一个服务。所以我们需要一个工具pm2来帮助我们持续运行多服务的Node.JS项目。

执行

npm i pm2 -g

来安装pm2。

安装完成之后,我们也可以通过软链接来配置pm2的环境变量。

ln -s /root/node/bin/pm2 /usr/local/bin/pm2

这时我们在对应目录下执行

pm2 start app.js --name testserver

来启动一个node项目。其中参数name是自定义此项目在pm2运行时的名称。运行成功后,我们可以看到一个列表,里面列出了正在同时运行的Node.JS的项目状态。(更多pm2命令可以参照此页面)

我们再次在浏览器输入公网IP+对应端口号来测试pm2启动的项目是否运行成功。

4.安装MongoDB

我们进入MongoDB的官网,找到Community Server。
在这里插入图片描述

选择On-premises,下面右侧选择对应的版本和系统。
我这里以CentOS 8举例,第三项文件格式一定要选择tgz而不是shell(tgz),然后点击下方的Copy Link获取对应版本的下载链接。
在这里插入图片描述
此时我们回到Xshell,打开目录到/usr/local路径下。

cd /usr/local

下载MongoDB压缩包。

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.4.tgz

对压缩包进行解压缩.

tar zxvf mongodb-linux-x86_64-rhel80-4.4.4.tgz

然后将解压缩的文件夹改成较短的名字(我这里改成了mongodb)

下面在 /var 目录下创建存储数据和日志的目录。

mkdir -p /var/mongodb/data
mkdir -p /var/mongodb/logs

同时也要创建日志文件和MongoDB的启动配置文件。

touch /var/mongodb/logs/log.log
touch /var/mongodb/mongodb.conf

下面添加CentOS开机启动
执行

chmod +x /etc/rc.d/rc.local

打开rc.local文件追加内容。

vi /etc/rc.d/rc.local

此时进入文本模式,按i键进入编辑模式,在touch命令的下一行追加

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork

按esc退出编辑模式,输入:wq保存并退出该文件。

下面配置mongodb.conf文件。
用vim打开conf文件

vim /var/mongodb/mongodb.conf

在其中加入

dbpath = /var/mongodb/data
logpath = /var/mongodb/logs/log.log
logappend = true
port = 27017
fork = true
auth = true

之后保存并退出。
(我们可以看到配置的端口号为27017,如果我们想要远程连接该服务器上的数据库,就要去阿里云控制台打开27017端口。)

然后配置path

用vim打开path

vim ~/.bashrc

在文件最后追加

export PATH=$PATH:/usr/local/mongodb/bin

保存并退出

执行

source ~/.bashrc

来保存设置。

下面我们启动MongoDB服务
执行

mongod --config /var/mongodb/mongodb.conf

若出现successfully字样说明MongoDB成功启动。

因为我们要保证数据安全,于是我们需要进行远程加密。
首先添加账号密码,执行mongo进入数据库的命令行界面,执行

use admin
db.createUser({user:"自定义账户名",pwd:"自定义密码",roles:["root"]})
exit

注意创建完用户后输入exit退出MongoDB命令行。

然后我们需要关闭MongoDB服务并在启动一次。
在linux命令行执行

mongod -shutdown -dbpath=/var/mongodb/data
mongod --config /var/mongodb/mongodb.conf

然后我们执行mongo进入MongoDB命令行,尝试登入账户。
执行

use admin
db.auth("刚才自定义的用户名","刚才自定义的密码")

若输出1,则代表连接成功。

5.修改项目文件

此时我们要将本地的项目放到服务器上需要进行一点代码修改。

1.将项目的相对路径./尽量换成动态路径__dirname

因为相对路径./是针对执行node命令的目录来说的,所以如果你不在项目目录下开启node服务而直接用绝对路径开启项目服务的话是会出错的,所以为了避免出现此类情况要将相对路径全部替换。

2.修改MongoDB的连接方式

Node.JS的连接MongoDB代码由于运行在是在有账户的服务器中,所以要加上相关参数。

下面以mongoose来举例,原生MongoDB的代码也照此
作相应更改。

mongoose.connect('mongodb://test:123456@localhost:27017/question?authSource=admin')

这里我之前设置的服务器上的MongoDB的账户名为test,密码为123456,端口号为27017,连接的集合为question

所以通用格式为
mongodb://用户名:密码@localhost:端口号/集合名称?authSource=admin

6.上传项目文件

通过Xftp将本地项目文件上传到 /home目录下,通过pm2启动项目,在浏览器上输入公网IP+端口号就可以看到之前的本地Node.JS项目已经成功运行在阿里云服务器上了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值