Liunx下创建node服务、运行前端项目

前言

发布前端应用时,通常情况我们采用nginx作为web服务器,我们也会用tomcat作为web服务器。但有时我们只是想简单的实现一个服务,如果用nginx, 又得进行nginx的安装和配置。如果使用tomcat,也要装java的JDK环境和tomcat,而且用动态服务器发布静态资源,也不是很合适。那有没有其他的选择呢?有,答案就是用nodejs实现一个web服务。

一、安装node服务环境

1. 安装node
  • 下载并解压
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz

tar -xvf  node-v6.10.2-linux-x64.tar.xz 
  • 配置Node路径全局环境

liunx执行vi,修改profile

vi /etc/profile

在/etc/profile后面加

export NODE_HOME=/opt/node-v6.10.2-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存后立即生效配置

source /etc/profile

检测node环境安装是否成功,出版本号即成功

node -v
2. 全局安装node-static依赖
npm install -g node-static

二、新建运行项目node服务的js脚本

  • 找个地方,新建 xx-server.js文件 (注意node程序路径和项目文件路径), 内容如下:
var _nodePath="/opt/node-v6.10.2-linux-x64/lib/node_modules" ; //node程序路径
var _projectPath="./"; //项目文件路径

var static = require(_nodePath+'/node-static'); //加载node-static
var file = new static.Server(_projectPath);

require('http').createServer(function (request, response) {
  request.addListener('end', function () {

    file.serve(request, response);
  }).resume();
}).listen(9977); //前端项目服务侦听端口
console.log('服务开启成功');

三、运行和停止项目node服务

1. 手动启停方式
  • 开启项目node服务
node xx-server.js &
  • 关闭项目node服务(查看运行的xx-server.js进程号,kill相关进程号)
[root@172-1-26-226 datacenter]# ps -ef|grep xx-server.js
root       2264   1812  2 10:26 pts/0    00:00:00 node xx-server.js
root       2272   1812  0 10:26 pts/0    00:00:00 grep --color=auto xx-server.js

[root@172-1-26-226 datacenter]# kill -9 2236

2. shell脚本开启项目node服务
  • 新建一个run.sh文件,脚本内容如下:
###
 # @Author: lq
 # @Date: 2020-09-04 14:33:52
 # @Description: Liunx环境、node服务下,启动前端项目脚本
### 

echo "	"

if [ $# -lt 1 ]
then
  echo -e " \033[40;33m >> procedure name parameters can not be empty\033[m"
	echo "	"
  exit 1
fi

JS_NAME=$1

if [ "${JS_NAME##*.}"x != "js"x ];then
  echo -e " \033[40;33m You're not running a js file [" $JS_NAME "]\033[m"
	echo "	"
	exit 1
fi

ID=`ps -ef | grep $1 | grep -v "$0" | grep -v "grep" | awk '{print $2}'`                                            
echo " >>" $1 progress "-->" $ID
echo " >> stop " $1 "..."

for id in $ID
do
kill -9 $id
echo " >> killed $id"
done

echo " >> start "node $JS_NAME  "....."
echo "	"

node $JS_NAME &

exit 1

  • 去除sh文件中的\r
sed -i 's/\r//' run.sh
2.1 通过shell脚本,自动开启node服务。

重启服务时,不需要手工kill,自动会kill掉xx-server.js的进程

[root@172-1-26-226 datacenter]# sh run.sh xx-server.js
	
 >> xx-server.js progress --> 2353
 >> stop  xx-server.js ...
 >> killed 2353
 >> start node xx-server.js .....
	
[root@172-1-26-226 datacenter]# 服务开启成功

2.2 守护进程启动
  • nohup node xx-server.js & 这种启动方式有问题,终端关了服务还是会停
  • 用forever 方式启动

如果启动不成功,需要看下端口占用情况 lsof -i :9966
forever介绍

#安装forever
npm install forever -g

#forever方式启动
forever start xx-server.js

#forever方式停止
forever stop xx-server.js

#forever 列表查看
forever list
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值