Shaoli's Blog

从零开始,node.js+express+mongodb搭建个人博客(阿里云nginx)

从零开始,node.js+express+mongodb搭建个人博客(阿里云nginx)


那么我们就不扯牛皮,开始步入正题吧!

趁着双十二,偶然间看到阿里云服务器有打折,而且力度不小,一冲动就买了一台云服务器ECS,以前在阿里上买了两个域名也闲着没用,正好可以搞搞事,学习学习整个流程。


  1. 首先当然是在阿里云上买一台服务器啦,这个就不用教了吧。(ps: 本人买的是最低配置的,所以第一次进页面时,要加载比较久 - -! 见谅)
  2. 在服务器上搭建nginx和node环境,这个比较复杂,下面会仔细介绍。
  3. 上传本地经过测试好的代码,并且可以正常访问到


一、购买云服务器并创建好实例。(阿里云上教程齐全,这里就不多说了)


二、配置nginx和node环境

在配置nginx之前,我推荐大家下载一款ssh可视化管理工具,不用再面对黑压压的cmd了

winscp ---- https://winscp.net/eng/download.php



主机名就是你的公网ip,用户名默认root,端口默认22不动,登录后就可以看到你的服务器上的文件了。


1.首先先安装pcre、zlib、openssl,配置nginx的时候需要的依赖包

//yum安装
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel


2.下载nginx安装包,这里我们以最新的nginx-1.15.8为例

http://nginx.org/download/nginx-1.15.8.tar.gz


3. 将nginx-1.15.8.tar.gz上传到/usr/local/下

 //解压
tar -zxvf nginx-1.15.8.tar.gz


4. 重命名包名称,把nginx-1.15.8改为nginx

//重命名
mv nginx-1.15.8 nginx


5.进入nginx文件夹,编译

//进入nginx文件夹
cd nginx         
//使用默认配置就行了
./configure      
//编译并安装
make              
make install


6.进入nginx的安装目录,并启动nginx

//进入默认的目录
cd /usr/local/nginx/sbin 
//启动   
./nginx    


7.运行起来之后访问服务器ip,如果可以看到nginx的欢迎页面,恭喜你。


如果访问不了,查看一下防火墙的80端口是否有打开。


8.如果有需要,可以把nginx设为开机自启动

//打开rc.local
vi /etc/rc.local
//增加一行 
/usr/local/nginx/sbin/nginx
//设置执行权限
chmod 755 rc.local


或者用winscp工具修改也可以



接下来就是安装配置node环境了。


1.安装node.js

直接打开命令行,输入

安装最新版 nodejs
wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz


解压安装包
tar -xvf node-v10.15.0-linux-x64.tar.xz


进入目录,并安装相关插件
cd node-v10.15.0-linux-x64
yum install gcc gcc-c++


进行默认配置,并编译
./configure
make


编译完成后,开始安装
make install


验证安装是否成功
node -v
npm -v



使用淘宝的npm镜像cnpm,,比较稳定不掉线

安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org


验证安装是否成功
cnpm -v




安装express框架

安装express
cnpm install -g express


至此,我们的环境配置得差不多了。可以开始搞事了



三、安装配置mongoDB数据库。


1.安装MongoDB

yum install -y mongodb


2.启动mongodb服务,并加入开机启动项

systemctl start  mongod
systemctl enable mongodb
#或者
mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork


3.测试是否安装好

//测试
mongo
//查看版本
db.version()
//查看数据库
show dbs


 




四、配置生产环境,把线下文件同步上来。


废话不多说,我们还是用WinScp来进行操作。


1. 首先,先把nginx的默认目录更改到home文件夹下


找到图片上的nginx配置文件路径,打开并编辑。由于我们是vue打包出来,所以指向dist文件夹下的index

//文件路径
/usr/local/nginx/conf/nginx.conf


如果还没做ip域名映射,这边的server_name暂时写你的公网ip,其他配置下面会说到。



2.把线下测试并打包好的代码复制到home文件夹下,我的文件结构如下,当然你也可以自己用别的目录结构。


bin文件夹、routes文件夹、app.js是express的配置相关文件

db文件夹是mongoDB的配置文件

dist文件夹是编译打包后的文件

uploads是我的图片上传存放的文件夹


项目放上来后,记得安装依赖包

//使用淘宝镜像安装
cnpm i



3.启动node服务应用 app.js

为了能保持后台运行node应用,这里推荐使用pm2。

pm2 是一个带有负载均衡功能的Node应用的进程管理器,可以把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载。


//全局安装pm2
npm install -g pm2
//启动app.js应用,并实时监听修改
pm2 start app.js --watch
//列出pm2启动的所有的应用程序
pm2 list



然后3000端口测试服务是否启动成功。用你的域名或公网ip+:3000,

注意:端口号默认3000,在app.js的listen里修改。这里修改为3030



如果找不到pm2命令,执行一下下面的命令

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



加入一些系统启动命令,文件路径

# /etc/rc.d/rc.local
#启动mongodb
/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
#启动nginx服务
/usr/local/nginx/sbin/nginx


赋予自启动权限

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


设置一些快捷环境变量,可全局使用的命令

# /etc/profile
export NODE_HOME=/node-v8.4.0-linux-x64/bin 
export PATH=$NODE_HOME:$PATH
export NODE_PATH=/node-v8.4.0-linux-x64/lib/node_modules

export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
    评论列表

  • 本人

    测试评论功能

  • 本人

    测试OK

  • 一位匿名小伙伴

    做得还不错!加油

  • 本人 --福建省厦门市

    测试ip和地址...

  • 353 --福建省福州市

    3

  • hao

    good

person
0 / 16
comment
0 / 100