nodejs 如何部署到服务器上?

JavaScript017

nodejs 如何部署到服务器上?,第1张

跟你在本地开发是相同的。

1、安装指定版本的node.js(服务器基本软件的安装)

2、上传代码到服务器(可以通过ftp、ssh、git等方式)

3、安装项目依赖的模块

> npm install

4、启动应用(也可以通过forever、pm2等工具进行管理)

> node ./www/bin

当然,如果你深谙运维之道,可以直接通过docker等方案将运行环境容容器化。

基本的Linux运维知识的话可以参考linuxprobe.com。

还有几个需要注意的点:

1、运行权限:注意做好应用之间的隔离(使用低权限用户、文件系统隔离等),避免应用崩溃导致系统宕机等风险

2、80端口:通过nginx等进行反向代理,应用本身占用1024后的端口(无需root权限)

由于自身特性的原因。node程序必须保持开启才能访问网站,而当我们关闭SSH时这些进程都会被停止。有以下3种方法可以避免这个问题。

screen

Screen,虚拟终端管理器。可以在后台管理终端界面,防止SSH断开以后任务停止运行。

安装方法:

sudo apt-get screen (以ubuntu为例)

使用方法:

使用screen -S [任意id]命令进入一个名为id的终端,此时便可以随意执行操作 

例如执行sudo apt-get upgrade,或者其它消耗时间比较长的工作,像编译内核等等。

按ctrl+a后再按d保存虚拟终端,系统提示deatached即为保存成功 

接下来可以断开SSH终端,虚拟终端仍会执行。

访问已经创建好的终端 

screen -ls 列出已经创建的正在后台运行的终端 

screen -r xxx 进入终端 

例如 screen -r terminal1

彻底退出 

screen -r 进入终端后执行exit即可完全退出

PM2

pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着

安装方法

npm install -g pm2

使用方法

启动应用 pm2 start -watch app.js

重启应用 pm2 restart app.js

显示进程列表 pm2 list

停止某应用 pm2 stop app_name|app_id

停止所有应用 pm2 stop all

小白方案

个人目前用的是宝塔Linux面板,可以说是把Linux的各种操作都已比较简单的形式展现出来了,不需要什么Linux知识就能掌握 宝塔官网了解一下

而这其中内置了PM2管理,装一下就OK了 

用vue-cli搭建的做法

1、npm run build

2、把dist里的文件打包上传至服务器 例 /data/www/,我一般把index.html放在static里

所以我的文件路径为:

/data/www/static

|-----index.html

|-----js

|-----css

|-----images

....

3、配置nginx监听80端口, location /static alias 到 /data/www/static,重启nginx

location /static {

alias /data/www/static/

}

4、浏览器访问即可