nodejs服务器部署教程三
安装mongodb数据库
如何在ubuntu上安装mongodb数据库,其实官方文档写的很清楚啦
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6切记按找ubuntu版本号安装,我的是16.04echo "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.listsudo apt-get updatesudo apt-get install -y mongodb-orgsudo 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
4. 设置文件夹的可读写权限
sudo chmod 777 /www
我默认是把项目clone到/www文件夹下
5. 找到/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('<!DOCTYPE html><html><body></body></html>', { url: 'http://localhost:8080' })
const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', { 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

nodejs服务器部署教程三的更多相关文章
- nodejs服务器部署教程四
nodejs服务器部署最后一篇文章,部署ssl证书,升级http为https,其实网上相关教程有很多,但是略麻烦,本教程让你一切从简,5分钟搞定https,免费一年哦 申请ssl证书 免费申请的机构有 ...
- nodejs服务器部署教程二
这篇文章主要介绍如何在服务端跑vuejs的项目,如果上一篇教程你成功输出了hello world,那这一篇更简单 首先你要有一个已经能在本地跑的基于vuejs的项目,我就以之前写的仿饿了么的项目为例来 ...
- nodejs服务器部署教程一
第一篇教程紧紧让你输出一个hello world 环境介绍 服务器环境:ubuntu(16.04)64位 本地环境:windows10 64位 连接工具:mobaxterm ubuntu安装和基本配置 ...
- 搭建前端监控系统(三)NodeJs服务器部署篇
===================================================================== 监控系统预览地址: DEMO地址 GIT代码仓库地址 ...
- 服务器部署_linuix下 一台nginx 多域名之二
第二个需求: 1. 一台服务器部署了三个应用web1~web3对应三个域名:www.web1.com.www.web2.com.www.web3.com ,方法参照我另外一篇文章 2. 如果用非www ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 将nodejs代码部署到阿里云服务器
概述 最近在做一个小项目,其中用nodejs做了个数据转发的接口,之后需要将这部分代码部署到服务器上面,并使用Nginx做反向代理.期间使用搜索引擎大量查阅了其他同鞋的经验,不过写的大多很笼统,因此踩 ...
- Windows环境下部署Tomcat服务器图文教程
Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. 本文将详细介绍在Windows环境下 ...
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
随机推荐
- 【oneday_onepage】——Microsoft adds a wing, more closets to the homes of SharePoint Online tenants
To prevent SharePoint Online customers from feeling boxed in, Microsoft wants to improve the way the ...
- ROS关于cv_brige的使用
最近想使用OpenCV 和ROS实现点云的拼接,实现三维重建,那么在学习了kinect的基本的使用方法以后我们知道,直接使用ROS 的包即可得到点云,深度图,rgb图等信息, roslaunch op ...
- Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)
1.执行顺序 1.1.一个类中的初始化顺序 类内容(静态变量.静态初始化块) => 实例内容(变量.初始化块.构造器) 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)= ...
- r语言 列出所有变量
你希望知道目前工作空间中存在哪些已定义的变量和函数. 解决方案 使用ls函数,或者使用ls.str函数了解每个变量更详细的信息. 讨论 ls函数可以显示当前工作空间中所有对象的名称:> x &l ...
- CSS非ASCII字符最佳实践
问题场景 在写样式时经常需要用到非ASCII字符的属性值,如下: ? 1 2 3 4 5 6 7 8 9 10 11 .hot_list .sign_discount:before { cont ...
- 【转】Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法
缓存雪崩 缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机. 解决思路: 1,采用加锁计数,或者使用合理的队列 ...
- 移动互联网App兼容性测试
我建议大家也可以参考一些针对App监测和统计的网站,都非常有意义,具体如下: 友盟品牌手机排行榜 http://www.umeng.com/ 移动观象台 https://www.talkingd ...
- 打开应用中SQLite文件的方法
1.先找到sdk中的platform-tools文件夹下的adb.exe 2.打开dos命令窗口依次输入 :adb shell → sqlite3 /data/data/com.example.s ...
- 【转】【WPF】WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel
将所有的事件,属性,都映射到ViewModel中.好处多多,以后开发尽量用这种模式. 解决方法: 使用System.Windows.Interactivity.dll,添加该dll到项目引用 xmln ...
- 概念:CountDownLatch、CyclicBarrier、Semaphore,以及guava的RateLimiter
概念 CountDownLatch:一个门闩,作用是将某个线程关在门外,等门里的人分赃完毕(计数为0)的时候,才会打开门,让外面的那个线程执行. CyclicBarrier:直译的话,就是循环障碍.貌 ...