1. 程式人生 > >node.js&pm2搭建node生產環境

node.js&pm2搭建node生產環境

本文以 centos 6.5 x64 為例

img

建議採用穩定編譯過的版本,source code稍麻煩,編譯過的直接可用,安裝超級簡單,紅色的是centos X64可用地址。

1、下載安裝包

[[email protected] 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都可以全域性啟用。

推薦上面的全域性配置方式,當然配置軟連結也可以全域性命令列,這個不推薦。

[[email protected] bin]# ln -s /file/software/node/bin/node /usr/local/bin/node
[[email protected] bin]# ln -s
/file/software/node/bin/npm  /usr/local/bin/npm
[[email protected] bin]# cd /
[[email protected] /]# dir
bin  boot  cgroup  dev    etc  file  home  lib 
lib64  lost+found  media    mnt  opt  proc    root 
sbin  selinux  srv  sys  tmp  usr  var
[[email protected] /]# 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加入系統啟動中。

[[email protected] 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.
[[email protected] www]# pm2 save
[PM2] Dumping processes
要儲存一下!

還有更厲害。
先去pm2官網上註冊個賬號,收費的更好些,我們看下free版本。

[[email protected] ~]# 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

這裡寫圖片描述

相關推薦

node.js&pm2搭建node生產環境

本文以 centos 6.5 x64 為例 建議採用穩定編譯過的版本,source code稍麻煩,編譯過的直接可用,安裝超級簡單,紅色的是centos X64可用地址。 1、下載安裝包 [[email protected]

node.js&pm2搭建node生產環境

本文以 centos 6.5 x64 為例 node.js 下載地址 https://nodejs.org/en/download/stable/ 建議採用穩定編譯過的版本,source code稍麻煩,編譯過的直接可用,安裝超級簡單,紅色的是centos X64可用地址。

Node.js簡介——基於Node.js搭建自動化測試環境

有必要整理一下Node.js基礎知識啦!                                     &

如何在VS2015中搭建可以寫node.js的C++ Addon的環境

如何在VS2015中搭建可以寫node.js的C++Addon的環境     由於專案需要,編寫一些提供給node.js呼叫的C++實現的外掛,所以在vs中搭建開發node addon 的環境。

Node.js +Swagger Editor + Swagger-UI 環境搭建

安裝node.js 點選 安裝器 node-v6.11.1.pkg 開始安裝 一路下一步,安裝完成 node.js安裝後驗證 npm -v node -v 下載Swagger-Editor 複製最新 relea

[Node.js專題一]Node.js環境搭建及專案建立

一、環境搭建 1、下載node.js 2、安裝及配置node.js 二、建立專案 1、建立專案資料夾 2、配置專案 命令列進入專案資料夾 初始化專案 npm init 安裝框架 npm install

Node.JS+MongoDB搭建個人博客(model目錄)(三)

數據庫 技術分享 操作 釋放 災難 存儲 需要 http 三個參數 model目錄主要是封裝一些經常使用的方法,便於使用。 setting.js文件: 很簡單,就單單封裝了一個url作為公用,以後改就方便改了。 md5.js(不推薦用): db.js文

Node.js中的互動式執行環境----REPL

       在node.js中,為了使開發者方便測試JavaScript程式碼,提供了一個名為REPL(Read-Eval-Print-Loop)的可互動執行環境.開發者可以在該執行環境中輸入任何JavaScript表示式,當用戶按下回車鍵後,REPL執行環

node.js輕鬆搭建一個伺服器

前端獲取資料時經常遇見跨域問題,以前一直用nginx做反向代理。最近在用vuejs,發現webpack-dev-server的代理簡單好用。於是仿照寫了一個簡單的web伺服器,用於非webpack的專案。 1 const request = require('request'); 2 con

node.js搭建可訪問本地檔案的伺服器①

前言: 學會了如何搭建了伺服器之後,就要開始運用伺服器來訪問靜態檔案了。 一、先上訪問靜態檔案的完整程式碼 (先走下流程,再解析程式碼) //載入模組 var http = require('

最近學習的 Node.js 基礎:安裝、環境配置、forever

最近工作中,因為某某某某原因,需要用到Node.js  。  發現在很多方面和python很像,比如generator / yield ,比如模組的使用方式,比如http模組。   先安裝個環境,windows沒什麼難度,下載個安裝包裝一下就行,主要看一下centos的

node.js搭建本地伺服器

前言:簡易上手node.js後,我們就可以在自己電腦上建立本地伺服器了。更多內容訪問:一、先上程式碼。//請求Node.js自帶的http模組。 var http = require('http');

node.js伺服器搭建

//1.匯入http 核心模組 const http = require("http"); //2.呼叫http.createServer 方法,建立一個web 伺服器物件 const server = http.createServer(); //3.server 伺服器 繫結 監聽函式,通過on 方

基於Node.js Express搭建Https伺服器

內容:1、安裝Node.js2、安裝Express和express-generator3、利用express-generator生成新專案4、生成SSL證書5、將專案從http轉換為https關鍵詞:Node.js,Express,Https,EJS,SSL證書       

NODE.JS的NPM安裝編譯環境時報錯的解決方法

這幾天從公司的Gitlab下載了一個專案的檔案包,在本機執行npm install時各種報錯,折騰了好幾天,終於弄明白一些問題原因所在,給大家分享一下。 一、安裝好必要的開發軟體 npm install --global --production w

Linux系統下 mongoDB + Node.js 應用搭建例項

· 0x01環境安裝首先使用WinSCP 連結Linux伺服器。①.Node找個資料夾,將node 專案放進去然後指令:1. 遠端下載node 8.9.4:wget https://npm.taobao.org/mirrors/node/v8.9.4/node-v8.9.4-

Node.js —— pm2的使用

pm2 是一個帶有負載均衡功能的Node應用的程序管理器。可以把你的獨立程式碼利用全部的伺服器上的所有CPU,並保證程序永遠都活著,0秒的過載。 pm2的主要特性: 1、內建負載均衡(使用Node cluster 叢集模組) 2、後臺執行 3、0秒停機過

Node.js】WebStorm+Node.js開發環境的配置

安裝Express命令如下: npm install -g express 安裝成功之後會在C:\Users\[YOUR_USER_NAME]\AppData\Roaming\npm\node_modules下有express。 但是在執行node runtest.js命令時出錯:(runtest.js

node.js】使用node.js搭建一個本地web伺服器

操作步驟 1、到node官網(https://nodejs.org/en/)下載node.js安裝檔案,X64代表執行環境為windows64位 2、雙擊安裝檔案安裝node.js 3、等待安裝 4、測試是否安裝成功,按【windows+R】,執行cmd 5、輸入n

使用Node.js+Express搭建App開發除錯Server

在開發手機端App時,通常會出現移動端新頁面開發的差不多了,後臺介面還沒Ready,導致前後端聯調浪費了大量時間。 聯調過程中又往往涉及到測試服務的切換、抓包驗證以及測試異常資料等測試。進而涉及到App重新打包,配置Charles等抓包工具,後臺改資料等等工作