Nodejs项目服务器部署

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

根据慕课网课程《Nodejs最后一公里》记的笔记,主要了解项目服务器部署流程。



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更多可以查看:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html


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
  • 1

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。详细信息可以参考:https://blog.csdn.net/m0_37941906/article/details/80679693?utm_source=blogxgwz9


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


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


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

如果在阿里云官方买产品包括:云服务器,云数据库等,  参考下面这些建站干货
 
 
阿里云产品2000元代金券领取地址: 阿里云云小站
阿里云官方最新活动公布地址:阿里云官方最新活动 (实时更新)
阿里云服务器实例规格组地址:官方云服务器实例
阿里云学习路径地址:阿里云学习路径
 
在购买过程中有任何不懂,都可以拨打官方热线进行咨询。售前电话:95187转1

相关文章
|
15天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
30天前
|
定位技术
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
|
16天前
|
开发框架 JavaScript 中间件
node+express搭建服务器环境
node+express搭建服务器环境
node+express搭建服务器环境
|
1月前
|
弹性计算 运维 安全
2024年阿里云一键搭建部署幻兽帕鲁服务器解决方案
幻兽帕鲁火了,为了确保畅快体验游戏,构建高效、稳定的游戏服务器至关重要。幸运的是,阿里云为您提供了快速、简便的服务器搭建解决方案,即使您对技术知识了解有限,也能在短短一分钟内轻松完成《幻兽帕鲁》游戏的联机服务器搭建!
1453 4
|
6天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
6天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。
|
7天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
7天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
8天前
|
JavaScript
node.js输入项目目录结构并展示
node.js输入项目目录结构并展示
5 0
|
9天前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署项目流程
本文主要讲解阿里云服务器的部署,如何选择配置等