关闭

node.js&pm2搭建node生产环境

标签: node.js源码
933人阅读 评论(0) 收藏 举报
分类:

本文以 centos 6.5 x64 为例

node.js 下载地址 https://nodejs.org/en/download/stable/

img

建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红色的是centos X64可用地址。

https://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-x64.tar.xz

1、下载安装包

[root@localhost software]# wget http://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-x64.tar.xz
--2016-03-06 14:17:04--  http://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-x64.tar.xz
Resolving nodejs.org... 104.20.22.46, 104.20.23.46
Connecting to nodejs.org|104.20.22.46|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8374600 (8.0M) [application/x-xz]
Saving to: “node-v5.7.1-linux-x64.tar.xz100%[=====================================================================================================================================================>] 8,374,600   41.5K/s   in 2m 22s  

2016-03-06 14:19:37 (57.7 KB/s) - “node-v5.7.1-linux-x64.tar.xz” saved [8374600/8374600]

原始https链接容易下不下来,看网络情况,可以去掉s后下载快些。

2、解压文件tar.xz

因为是tar.xz结尾的文件,要xz一下,再tar一下。

[root@localhost software]# xz -d node-v5.7.1-linux-x64.tar.xz 
[root@localhost software]# tar -xvf node-v5.7.1-linux-x64.tar 
ode-v5.7.1-linux-x64/
node-v5.7.1-linux-x64/bin/
node-v5.7.1-linux-x64/bin/npm
node-v5.7.1-linux-x64/bin/node
node-v5.7.1-linux-x64/share/
node-v5.7.1-linux-x64/share/man/
node-v5.7.1-linux-x64/share/man/man1/
node-v5.7.1-linux-x64/share/man/man1/node.1
node-v5.7.1-linux-x64/share/systemtap/
node-v5.7.1-linux-x64/share/systemtap/tapset/
node-v5.7.1-linux-x64/share/systemtap/tapset/node.stp
node-v5.7.1-linux-x64/share/doc/
node-v5.7.1-linux-x64/share/doc/node/
node-v5.7.1-linux-x64/share/doc/node/gdbinit
node-v5.7.1-linux-x64/LICENSE
node-v5.7.1-linux-x64/include/
node-v5.7.1-linux-x64/include/node/
node-v5.7.1-linux-x64/include/node/zconf.h
node-v5.7.1-linux-x64/include/node/uv-sunos.h

[root@localhost software]# cd node
[root@localhost node]# cd bin
[root@localhost bin]# ./node -v
v5.7.1

等待解压完成,建议把解压后的目录改为node,或者其他有意义的名字,不然node升级太快在原有基础上升级但是文件目录显示的版本名又不匹配。

3、配置node全局运行

export NODE_HOME=/file/software/node
export PATH=$NODE_HOME/bin:$PATH 
#找到下边这一行添加进去,记得你自己的路径搞对了。
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

重启一下试试看,node,npm都可以全局启用。

推荐上面的全局配置方式,当然配置软链接也可以全局命令行,这个不推荐。

[root@localhost bin]# ln -s /file/software/node/bin/node /usr/local/bin/node
[root@localhost bin]# ln -s
/file/software/node/bin/npm  /usr/local/bin/npm
[root@localhost bin]# cd /
[root@localhost /]# dir
bin  boot  cgroup  dev    etc  file  home  lib 
lib64  lost+found  media    mnt  opt  proc    root 
sbin  selinux  srv  sys  tmp  usr  var
[root@localhost /]# npm -v 3.6.0

之前基本的环境已经搭建完成,但是光有这个还不足够。

4、pm2保驾护航

forever已经out了,严重推荐pm2方式运行nodejs,这是最好的,没有之一。
内建负载均衡(使用 Node cluster 集群模块)
后台运行
0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
具有 Ubuntu 和 CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
pm2官网http://pm2.keymetrics.io/

[root@localhost /]# npm install -g pm2
开始下载安装文件
  │ └── minimist@0.0.8 
  ├── moment@2.11.2 
  ├─┬ nssocket@0.6.0 
  │ └── lazy@1.0.11 
  ├── pidusage@1.0.1 
  ├─┬ pm2-axon@2.0.9 
  │ ├── amp@0.3.1 
  │ ├── amp-message@0.1.2 
  │ ├── configurable@0.0.1 
  │ └── escape-regexp@0.0.1 
  ├─┬ pm2-axon-rpc@0.3.6 
  │ ├─┬ commander@1.0.5 
  │ │ └── keypress@0.1.0 
  │ └── json-stringify-safe@5.0.1 
  ├─┬ pm2-deploy@0.2.1 
  │ ├── async@1.4.2 
  │ └── tv4@1.0.18 
  ├─┬ pm2-multimeter@0.1.2 
  │ └── charm@0.1.2 
  ├── pmx@0.6.1 
  ├── semver@5.1.0 
  ├── shelljs@0.6.0 
  ├─┬ source-map-support@0.4.0 
  │ └─┬ source-map@0.1.32 
  │   └── amdefine@1.0.0 
  └─┬ vizion@0.2.12 
    └── async@0.9.0 

runTopLevelLifecycles     ▌ ╢████████████████████████████████████████████████████████████████████████████████
npm WARN optional Skipping failed optional dependency /pm2/chokidar/fsevents:
runTopLevelLifecycles     ▀ ╢████████████████████████████████████████████████████████████████████████████████
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.8
runTopLevelLifecycles     ▐ ╢████████████████████████████████████████████████████████████████████████████████

成功。

5、测试个helloworld

helloworld.js

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain'
}); res.end('Hello World\n'); 
}).listen(1337, "127.0.0.1"); 

pm2启动试试看

img

是不是很神奇,接下来把pm2加入系统启动中。

[root@localhost www]# pm2 startup centos
[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] /var/lock/subsys/pm2-init.sh lockfile has been added
[PM2] -centos- Using the command:
      su -c "chmod +x /etc/init.d/pm2-init.sh; chkconfig --add pm2-init.sh"

[PM2] Done.
[root@localhost www]# pm2 save
[PM2] Dumping processes
要保存一下!

还有更厉害。
先去pm2官网上注册个账号,收费的更好些,我们看下free版本。

[root@localhost ~]# pm2 link key1 ke2 [62server]
[Keymetrics.io] Using (Public key: yklukcus7ugg7u6) (Private key: fhgynshuxtahahd)
[Keymetrics.io] [Agent created] Agent ACTIVE - Web Access: https://app.keymetrics.io/

key1和key2是注册后官网给的。

img

系统提供监控的key

img

技术交流学习或者有任何问题欢迎加群:154514123

这里写图片描述

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

pm2+Keymetrics

node 服务在线上运行,一般都是用pm2 来守护。 pm2 的执行状态可以通过Keymetrics 配置在网站上显示 。 首先用pm2 start xx  -i num --name 定义服务名 /...
  • starwmx520
  • starwmx520
  • 2016-09-12 17:30
  • 663

linux安装nodejs、cnpm、pm2

NodeJSV4.4.4是一个长期支持版,是官方推荐安装的版本。 在Linux下安装有两种方式,一个是下载源码make编译安装。 另外一种是比较推荐的,直接下载编译好的二进制,官方比较推荐后者。 ...
  • TianTangYouZui
  • TianTangYouZui
  • 2016-12-28 22:02
  • 3515

node npm pm2 安装

1、从官网下载源代码对应的版本 node download : https://nodejs.org/download/release/ 注:有tar.gz 和 tar.xz 两种版本 (不知道有什...
  • Leo_perfect
  • Leo_perfect
  • 2016-12-16 11:12
  • 5716

nodejs高大上的部署方式-PM2

http://www.cnblogs.com/zhoujie/p/nodejs4.html
  • molong421
  • molong421
  • 2016-08-25 14:02
  • 2476

[node]:Nginx配置多站点+https & 使用pm2管理后台node进程

最近用ghost又搭建了个博客(blog.tonlyshy.cn),想用这个写偏技术的内容,本站就偏生活一点。 期间试过‘全世界最好的语言’的WordPress以及typecho,接着又试了‘201...
  • ALDNOAH_ZERO
  • ALDNOAH_ZERO
  • 2017-03-29 03:25
  • 1825

node.js项目改进之环境配置

配置多种场景我们的系统是要在不同的环境下运行的,不同的环境可能是不同的端口号,不同的数据库地址,数据库用户和密码, 并且可能有的需要自动重启有的不需要自动重启。 我们在有一个配置的时候是无法满足这...
  • qq_25804071
  • qq_25804071
  • 2017-04-02 21:20
  • 1308

在Ubuntu 14.04上设置生产环境可用的Node.js

在Ubuntu 14.04上设置生产环境可用的Node.js提供:ZStack社区 前言Node.js是一个开源的JavaScript运行时环境,开发者可以用它方便的构建服务器端应用和网络应用。Nod...
  • zstack_org
  • zstack_org
  • 2016-11-09 15:31
  • 1511

nodejs pm2配置使用教程

pm2是非常优秀工具,它提供对基于node.js的项目运行托管服务。它基于命令行界面,提供很多特性: 内置的负载均衡器等等,下面我们就一起来看看吧。 一、简介 pm2是一个带有负载均衡功能的应用...
  • hsany330
  • hsany330
  • 2016-04-27 14:17
  • 12707

3、node之pm2搭建node生产环境

pm2保驾护航 pm2 是一个带有负载均衡功能的 node 应用进程管理工具 forever已经out了,严重推荐pm2方式运行nodejs,这是最好的,没有之一。 内建负载均衡(使用 Node cl...
  • qq_23598037
  • qq_23598037
  • 2017-10-30 21:12
  • 61

Build Node.Js web server in Docker containers: nodejs+pm2+mongodb+redis

Build Node.Js web server in Docker containers: nodejs+pm2+mongodb+redis环境 系统环境 centos 6.5 64bit dock...
  • dongsoso
  • dongsoso
  • 2016-07-20 12:21
  • 3082
    Java技术交流群:6128790
    微信
    编程技术学习交流群 :154514123
    微信
    个人资料
    • 访问:590131次
    • 积分:8283
    • 等级:
    • 排名:第2816名
    • 原创:311篇
    • 转载:34篇
    • 译文:2篇
    • 评论:110条
    最新评论