服务器篇
由于服务器是没有桌面的,所以全程都是使用终端进行操作,我选择的是linux 二进制文件(x64) 的下载地址
node 安装
# 打开终端 进入远程服务器
ssh root@000.000.000.0
# 000.000.000.0 是指服务器的公网 IP
如果你不知道服务器的初始密码,你可以选择重置密码,重置密码后需要重启才会生效。
# 终端
# 进入根目录
cd /
# wget 是linux 系统下载命令 后面跟着地址链接
wget https://npm.taobao.org/mirrors/node/v14.5.0/node-v14.5.0-linux-x64.tar.xz
# 终端
# 100% 表示文件已经下载完成,我们下载的是压缩文件,所以我们先解压
# 终端
# 解压
tar -xvf node-v14.5.0-linux-x64.tar.xz
# 这个时候我们可以看目录结构
ls
node 已经安装完成接下来是环境变量配置
环境变量配置
# 终端
# 还是在根目录下打开配置文件,我的配置文件是空白的,处于预览状态暂时还不能编辑
- vim .bash_profile
+ vim /ect/propsfile
特别注意: 根据系统的不同,配置文件可能不一样
# 终端
i # 进入编辑状态新增环境变量
export NODE_HOME=/node-v14.4.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
# 终端
# 取消编辑状态 按 ESC 取消键
# :wq 保存退出 :q 仅退出
:wq
# 终端
# 提交一下修改的文件才会生效
source .bash_profile
# 最后检查一下node 有没有安装成功
node -v
# 别忘了把之前的压缩删除
rm -rf node-v14.5.0-linux-x64.tar.xz
特别提醒
发现在根目录配置 .bash_profile 文件每次进入服务器 node 都失效,需要再次source .bash_profile 才会生效。
# 解决方案
将环境变量写入.bashrc文件中(系统级配置文件),先将我们之前配置根目录配置文件内容删除
# 打开.bashrc
vim ~/.bashrc
# 保存退出
:wq
#提交.bashrc
source .bashrc
淘宝 NPM 镜像
# 终端
npm install -g cnpm --registry=https://registry.npm.taobao.org
git 安装
# 终端
# 安装
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
y # 回车
# 终端
# 检查一下有没有安装成功, 如果没报错就表示已经安装成功了
git help -a
# 终端
# 卸载
yum remove git
PM2 安装
# 什么是PM2
PM2是一个带有负载均衡功能的 Node 应用进程管理器,我们称之为进程守卫
# 这个安装就比较容易了使用npm安装就可以了
npm install pm2 -g
项目部署
基本环境已经安装完成,接下来就是项目部署
# 终端
# 新建文本夹
mkdir frame_sweet
# 进入
cd frame_sweet
# 初始化
npm init -y
# 安装依赖
cnpm install express -S
# 创建一个静态文件侠
mkdir views
# 创建一个html 文件
touch index.html
# 这个文件随便写点什么
....
# 创建主要程序及路由文件
touch app.js router.js
# app.js
const express = require('express')
const router = require('./router')
const path = require('path')
const app = express()
# 挂载静态文件,我的网页暂时放在 views 文件夹里面的
app.use('/', express.static(path.join(__dirname, './views')))
app.use(router)
app.listen(3002)
# router.js
const express = require('express')
const router = express.Router()
router.get('/', (req, res) => {
res.render('index.html')
})
module.exports = router
将项目存储到github 或 码云,方便服务器拿到
我在服务器的根目录新建了static 文件夹放置项目
# 终端
cd static
# 把项目克隆下来 git clone
cd demo
npm install
# 在服务器端先运行看看
node app.js
# 通过外网IP 加上端口访问项目看有没有被访问到
# 访问失败的大概的原因在,没有设置安全组,需要在阿里云控制台设置安全组
# 你访问服务器,所以配置的是入方向
重启 node 服务
到了这一步如果能通过IP:prot访问成功,node服务部署基本上告一段落了
我们使用的是ssh 操作服务器,启动node 项目,如果关闭了ssh那么node 服务就挂掉了,所以我们现在要使用PM2来守护进程,即使你关闭了ssh node 仍然会在后台运行
# pm2 启动服务
pm2 start app.js
# 也可以启用集群模式,只需传递-i 选项:
# max表示PM2将自动检测可用CPU的数量并运行尽可能多的进程
pm2 start app.js -i max
# 关闭pm2 进程
pm2 stop name
服务云防火墙
# 终端
# 查看防火墙状态
firewall-cmd --state
# 启动防火墙
systemctl start firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 重启防火墙
firewall-cmd --reload
番外篇 -- 服务器及域名购买与解析
服务器购买
本人买的是阿里云的服务器,操作系统是 CentOS 7.4 64位
域名购买
域名解析
使用的是阿里控制后,购买后需要域名解析及域名备案。
主机记录就是域名前缀,常见用法有:
www:解析后的域名为www.mytiw.com。
@:直接解析主域名 mytiw.com。
*:泛解析,匹配其他所有域名 *.mytiw.com。
mail:将域名解析为mail.mytiw.com,通常用于解析邮箱服务器。
二级域名:如:abc.mytiw.com,填写abc。
手机网站:如:m.mytiw.com,填写m。
记录值指的是服务器的公网IP
备案这一步我就是不展示了,直接使用阿里的备案就可以了
到这里域名已经解析成功了
作为一个前端记录第一次部署node服务的步骤,欢迎大神指导 ^_^