资讯专栏INFORMATION COLUMN

nodejs服务器部署教程三,部署基于node+vue+mongodb的项目

Tonny / 1545人阅读

摘要:服务器部署教程一服务器部署教程二,把项目部署到线上本文以我个人的开源项目作为演示,让你把自己的项目能在服务器上跑起来安装数据库如何在上安装数据库,其实官方文档写的很清楚啦切记按找版本号安装,我的是完成以上操作输入看到

nodejs服务器部署教程一
nodejs服务器部署教程二,把vue项目部署到线上
本文以我个人的开源项目vueblog作为演示,让你把自己的项目能在服务器上跑起来

安装mongodb数据库

如何在ubuntu上安装mongodb数据库,其实官方文档写的很清楚啦

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6切记按找ubuntu版本号安装,我的是16.04

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt-get update

sudo apt-get install -y mongodb-org

sudo service mongod start

完成以上操作输入mongo 看到如下信息表示:

第一个: WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
意思是:强烈建议使用带WiredTiger存储引擎的XFS文件系统,这个不用管它

第二个: WARNING: Access control is not enabled for the database
意思是:未对数据库启用访问控制,对数据和配置的读写访问不受限制(危险的warning),这个也不用管它

第三个:WARNING: /sys/kernel/mm/transparent_hugepage/enabled is "always"
解决方法:
sudo chmod 777 /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled

第四个:WARNING: /sys/kernel/mm/transparent_hugepage/defrag is "always"
解决方法:
sudo chmod 777 /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/defrag
重启:sudo service mongod restart
完成以上操作你就成功在你的远程服务器上安装mongodb了

初始数据的备份和导入

很多时候我们项目要上线,需要把本地的初始化数据导入到线上

首先在本地开启你的mongodb,并把数据备份到本地

比如说我要备份vueblog数据库到c:vueblog-backup文件夹:
mongodump -h 127.0.0.1:27017 -d vueblog -o C:vueblog-backup
备份出来的数据长这样

通过ftp工具把数据上传到远程服务器,例如我上传到了home/wmui文件夹下

接着在服务器导入数据到vueblog数据库

mongorestore -h 127.0.0.1:27017 -d vueblog ./vueblog-backup/vueblog
切记路径不要搞错了
查看是否导入成功:
mongo
use vueblog

项目部署

这里以我写的开源项目vueblog作为演示,此项目基于vue+node+mongodb开发

把服务器的/home/wmui/.ssh/下的id_res.pub添加到github的ssh公钥,wmui是你自己创建的用户

在项目根目录下创建ecosystem.json,pm2的发布脚本

{
  "apps": [{
    "name": "vueblog",
    "script": "./server.js",
    "env":
    {
      "COMMON_VARIABLE": "true"
    },
    "env_production":
    {
      "NODE_ENV": "production"
    }
  }]
}

把改动commit到github

设置文件夹的可读写权限

sudo chmod 777 /www
我默认是把项目clone到/www文件夹下

找到/home/wmui/下.bashrc:

注释掉

# case $- in
#    *i*) ;;
#      *) return;;
#esac

cd 到www目录下,clone项目到你的服务端

由于本地测试网址用的localhost,而线上肯定是你自己的域名,所以要解析域名和修改网址

添加nginx配置文件

upstream vueblog {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name vueblog.86886.wang;

    location / {
        proxy_set_header Host  $http_host;
        proxy_set_header X-Real-IP  $remote_addr;  
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Nginx-proxy true;
        proxy_pass http://vueblog;
        proxy_redirect off;
    }
}

命名为vueblog-8080.conf,保存到/etc/nginx/conf.d文件夹下
执行 sudo nginx -s reload 重启服务器

修改为线上地址

server.js:

const dom = new JSDOM("", { url: "http://localhost:8080" })
const dom = new JSDOM("", { url: "http://vueblog.86886.wang" })

app.js:

const baseURL = "http://localhost:8080/api"
const baseURL = "http://vueblog.86886.wang/api"  
启动项目

完成以上操作,就可以准备启动项目了
首先npm install安装依赖包
然后pm2执行:
pm2 start ecosystem.json --env production

结语

由于我主要是做前端的,对于服务器运维方面知识了解也不多,所以关于安全项的设置就没有考虑,不过如果仅仅想让自己的项目在服务器上跑起来,以上应该足够啦

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19028.html

相关文章

  • nodejs务器部署教程

    摘要:第一篇教程紧紧让你输出一个环境介绍服务器环境位本地环境位连接工具安装和基本配置我的是在阿里云买的,购买的时候镜像选择,现在在搞活动比较便宜,我买的香港地区的不用备案,购买后本地打开,点击,输入确定,输入,然后输入密码,会看到下面的界面连接远 第一篇教程紧紧让你输出一个hello world 环境介绍 服务器环境:ubuntu(16.04)64位本地环境:windows10 64位连接工...

    Hegel_Gu 评论0 收藏0
  • easy-mock 本地部署(挤需体验番钟,里造会干我一样,爱象节款mock)

    摘要:安装配置文件找到,或者创建一个文件,将如下需要替换的字段换成自己的配置即可。默认是不需要修改配置文件的不同环境会加载不同的配置文件,在此之前你应该对有所了解。学习群,美女多多。老司机快上车,来不及解释了。 前言 很多小伙伴问我怎么在自己公司的项目里面添加配置mock,在vue项目里面都知道怎么配置mock,在大型前端项目里面就一脸疑惑了。showImg(https://segmentf...

    YacaToy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<