1.项目准备

1.购买自己的域名
2.购买自己的服务器
3.域名备案
4.配置服务器应用环境(用户的权限、无密码的登陆、Nodejs环境、包和组件的安装、端口的转发、SSH证书生成和配置、Nginx的安装和配置、防火墙、数据库、自动备份的机制等等)
5.安装配置数据库(有本地数据库和云数据库)(数据库涉及到数据库的角色、数据库的读写权限、自动备份的机制)
6.项目远程部署分布与更新

2.远程登陆服务器

选购域名服务器及备案 域名商:爱名网、阿里云

fdisk -l 查看磁盘当前分区信息
df -h 查看硬盘使用命令

root权限及添加用户:我们不能一直使用root用户,不安全,我们可以添加多个用户,然后为用户设置权限。

ssh无密码登陆:本地生成私钥和公钥—》本地传到服务器的公钥—》密钥算法对比—》登陆成功。

查看本地是否已经配置过ssh:进入系统根目录,ls -a查看所有文件,查看是否有.ssh文件,进入之后存在文件存在的话就是已经配置过了。

配置.ssh的密钥和公钥:mkdir .shh,然后进入文件夹,执行ssh-keygen -t ras -b 4096 -C "2440286214@qq.com",然后回车,设置密码,就可以了。

开启.ssh代理:执行 eval “$(ssh-agent -s)”

.ssh可以加入代理之中:执行 ssh-add ~/.ssh/id_rsa

传输公钥到服务器:服务器同样配置.ssh,开启代理和加入代理之后,然后服务器设置authorized_keys把本地的公钥复制到里面就可以了。

SSH更多可以查看:SSH原理与运用(一):远程登录 - 阮一峰的网络日志

3.增强服务器安全等级

修改服务修改服务器的 22 端口,取消密码登录,增大服务器的破解难度,配置 IPTables 防火墙规则,通过 Fail2Ban 增强服务器的防御动作,提高服务器的安全系数,对整个线上服务器进行各种安全防护的增强器的 22 端口,取消密码登录,增大服务器的破解难度。

修改服务器默认登录端口。

配置 iptables 和 Fail2Ban 增强安全防护。

SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT、putty、Xshell等,而在服务器端运行的是一个sshd的服务,sshd的配置文件位置在:/etc/ssh/sshd_config,通过使用SSH,可以把所有传输的数据进行加密,而且也能够防止dns和IP欺骗,此外,SSH传输的数据是经过压缩的,可以加快传输速度。

修改默认端口:也同样是在/etc/ssh/sshd_config路径下进行修改。

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

4.搭建Nodejs环境

Ubunbu 服务器上通过 nvm 安装及管理 Nodejs 版本,以及 nvm 全局模块使用中可能遇到的问题解决思路,安装 PM2 并简单介绍 PM2 的基本使用和它生产环境中的角色。

借助 pm2 让 Nodejs 服务常驻。

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sys sysctl -p

fs.inotify.max_user_watches:表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

5.配置 Nginx 实现反向代理

安装并配置 Nginx 的 upstream,端口的映射转发给后台的 Nodejs 服务,实现服务的识别和转发。

配置 Nginx 反向代理 Nodejs 端口。

Linux 系统主要启动步骤:
1.读取 MBR 的信息,启动 Boot Manager。
2.加载系统内核,启动 init 进程, init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
3.init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别。通常情况下 /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。
4.根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg,Xwindow 为 Linux 下的图形用户界面系统。
5.启动登录管理器,等待用户登录。

6.利用 DNSPod 管理域名解析

更改域名的 DNS 根服务器,为域名指定一个新的解析平台,统一管理;学习不同的解析类型,增加多条解析规则,为不同类型的资源和服务配置 A 记录和 CNAME。

更改域名的 DNS 根服务器。

配置解析项目的域名 A 记录和 CNAME。

7.数据库配置安装MongoDB

在 Ubuntu 14.04 上加速安装 MongoDB 特定版本,学习使用 mongodump mongorestore mongoexport mongoimport 来实现单表单库导入导出,从线上远程管理配置 Mongodb 的读写和备份权限,实现生产环境下垮服务器之间的数据迁移流程,结合系统 crontab bash 脚本 mongodump 和备份角色实现定时备份。

在 Ubuntu 14.04 上安装 MongoDB。

往线上 MongoDB 导入单表数据或数据库。

为上线项目配置 MongoDB 数据库读写权限。

从一台服务器迁移数据到另一个线上 MongoDB 中。

为数据库实现定时备份方案。

上传数据库备份到七牛私有云。

8.向服务器正式部署和发布上线Nodejs项目

利用免费 Git 私有仓库平台管理项目源码版本,从本地及服务器的 PM2 来初始化应用的线上目录,一句命令来实现与服务器通信实现自动获取代码自动重启,分别演示 5 个项目的部署上线流程,演示带数据库的 API 型应用上线流程及微信后台 URL 配置。…

8.1 上传项目代码到线上私有 Git 仓库

8.2 配置 PM2 一键部署线上项目结构

PM2简介:

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

主要特性

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )

查看完整文章:
https://segmentfault.com/a/1190000002539204
https://segmentfault.com/a/1190000006793571

8.3 从本地发布上线和更新服务器的 Nodejs 项目

8.4 部署发布电影网站并连接线上 MongoDB

8.5 部署 ReactNative App 线上 API 服务

8.6部署微信小程序线上 API 服务

8.7 部署配置微信公众号项目后台

9.使用和配置更安全的HTTPS协议

不同的 SSL 证书类型及安全等级,利用免费提供 SSL 的平台申请及服务器上通过 Nginx 来配置证书验证模块,最后总结,我们学习和理解了一个真实的本地 Nodejs 项目,是如何被部署上线的,一台真实的服务器生产环境是如何被配置起来的,前端和后端的最后一个环节是如何通过域名和服务器串联起来的,以及必要的安全事…

9.1 选购申请 SSL 证书的一些建议:

SSL证书根据验证级别,分为三种类型,即域名型SSL证书,简称DVSSL;企业型SSL证书,简称OVSSL;增强型SSL证书,简称EVSSL。详细信息可以参考:DV型、OV型、EV型三种证书的申请区别_m0_37941906的博客-CSDN博客

9.2 云平台申请免费证书及 Nginx 配置

SSL申请平台:又拍云、腾讯云、七牛、阿里云

9.3 聊一聊运维安全和应对思路

业务搭载离不了云服务器,选择合适的平台最重要!

从目前国内云计算市场的格局来看,国内云计算前三强分别是阿里云、腾讯云和华为云,阿里云、腾讯云作为背靠互联网平台的企业,更偏向于B端用户;华为与作为传统的通信巨头,更偏向于G端。

本人从事云计算相关工作至今已有多年,国内主流的云平台都接触过,包括他们的销售及技术团队,对各家的产品也小有了解,并且指导过数百家企业迁移上云,对云平台选择也有一定的发言权!

网上有很多评测,评测数据也五花八门,说谁好的都有,这个两篇博文分析汇总的非常详细,分享给大家,文档地址:

博文1:云服务器哪家好!阿里云、腾讯云、华为云的服务器配置及价格对比?​

博文2:阿里云服务器突发型t6、n4、s6、c5、c6怎么选?和腾讯云服务器标准型s3、sn3ne、s4、s5、sa2相比哪家好?全面解析

如果是高并发,高IO业务场景,需要确定服务器规格,可让业务应用性能发挥到最佳,参考官方文档:

阿里云服务器规格:规格实例族 - 云服务器 ECS

腾讯云服务器规格:规格实例族 - 云服务器CVM

Nodejs项目服务器应该如何部署相关推荐

  1. 做Nodejs项目服务器部署

    根据慕课网课程<Nodejs最后一公里>记的笔记,主要了解项目服务器部署流程. 1.项目准备 1.购买自己的域名 2.购买自己的服务器 3.域名备案 4.配置服务器应用环境(用户的权限.无 ...

  2. react项目服务器Tomcat,tomcat部署react项目的方法

    tomcat部署react项目的方法 发布时间:2020-12-16 09:44:42 来源:亿速云 阅读:151 作者:小新 这篇文章主要介绍了tomcat部署react项目的方法,具有一定借鉴价值 ...

  3. 虚拟服务器nodejs项目部署打包,nodejs+express搭建服务器及vue项目部署打包

    一.Express 1.Node.js 2.Express Express是一个保持最小规模的灵活的Node.js web应用程序开发框架,为web和移动应用程序提供一组强大的功能 安装: npm i ...

  4. 部署nodejs项目到服务器的一些总结

    安装nodejs 首先在服务器上安装nodejs并配置环境,这个可以参考官方的文档,就不细说了 拷贝项目到服务器上 这里其实可以通过git直接clone在服务器上.当然正常发版一般是将代码打包上传到服 ...

  5. 如何将nodejs项目程序部署到阿里云服务器上

    将nodejs项目程序部署到阿里云服务器上 一.概述 二.具体步骤 1.拥有自己的服务器 2.下载Xshell 3. oneinstack配置web环境 4. XShell连接远程主机 5.更新系统软 ...

  6. 【宝塔面板部署nodeJs项目】网易云nodeJs部署在云服务器上,保姆级教程,写网易云接口用自己的接口不受制于人

    看了很多部署的,要么少步骤,要么就是写的太简洁,对新手不友好 文章目录 前言 一.下载网易云nodejs项目 1. git clone下载,两种方式 2. 运行项目 二.使用步骤 1. 先在本地运行 ...

  7. vue项目dist编译文件部署到服务器:页面空白、F5刷新报错404、403报错、等等bug - 总结篇

    文章目录 问题一. vue编译打包dist文件之后部署到线上服务器 ,访问页面却是空白? 问题二.如果不是空白,页面F5之后就又变成空白? 以Nginx服务器为例,(如下图FTP所示) `404报错: ...

  8. 一台新云主机nodejs项目部署过程

    某云服务商的一个全新的云服务器,系统为centos.需要在上面部署一套系统,包括了java.nodejs等等.本文记录一下与nodejs有关的部署过程.有些操作是熟悉.简单的,但也记录出来,权当流水账 ...

  9. 记一次完整的新浪云部署nodejs项目上线完整流程及填坑处理!

    工欲善其事,必先利其器.在开始本次部署新浪云nodejs项目之前,请先做好以下准备工作: 1.注册一个新浪微博账号! 2.使用注册好的新浪微博账号,登录新浪云网站:http://www.sinaclo ...

最新文章

  1. nginx+FastCGI到底是谁影响超时时间
  2. 对于58同城自动登陆的补充【主要是代码】
  3. 反思代码能力提升方法:重构 多写 知识面
  4. Linux的.a .so和.o文件
  5. javaSE各阶段练习题--初识Java章节
  6. IDEA安装和运行HelloWorld
  7. fork/join和线程池_从fork-join /线程池调用的Singelton bean中的访问spring请求范围缓存...
  8. 算法训练营 重编码_编码训练营后如何找到工作
  9. html 旋转木马 轮播,JS实现旋转木马式图片轮播效果
  10. echarts实现双Y轴之散点和折线图
  11. python必背语法_python常用语法合集
  12. oracle delete循环删除_oracle性能优化:高水位线(HWM)详解--如何计算HWM
  13. 使用宝塔控制面板建站时出现网页出现404错误怎么办?
  14. Mysql8.0修改数据库密码
  15. 1月16日云栖精选夜读 | 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景...
  16. 对120年的奥运数据进行了可视化分析
  17. Kaggle 注册问题
  18. 计算机服务器排名2015,服务器cpu排行榜
  19. 2021年4月Bmob无法访问Bmob云服务器
  20. 高清图书扫描仪与纸质图书

热门文章

  1. bugfree安装mysql_BugFree 安装
  2. java set子集_Java 求集合的所有子集
  3. 845`865`915`945`965主板支持多大CPU
  4. Windows 默认网关0.0.0.0图文解决方法
  5. 前端开发者搭建自己的博客
  6. JavaScript JS合并单元格 rowspan
  7. php清除文件夹下所有文件,学习猿地-php如何删除文件夹及其文件夹下所有文件...
  8. Python 自动化办公应用大全(ChatGPT 版)
  9. 让图片在div盒子中居中
  10. html,表格(table)属性中的 thead、tbody 以及 tfoot的关系