1. 程式人生 > >node.js後臺快速搭建在阿裏雲(二)(pm2和nginx篇)

node.js後臺快速搭建在阿裏雲(二)(pm2和nginx篇)

logs down key version c-c 6.2 文檔 實例 gin

前期準備

  • 阿裏雲服務器
  • node.js
  • pm2
  • express
  • nginx
  • linux(推薦教程:鳥哥的私房菜)

簡介

嗯……我只是個前端而已


在第一部分說完了express篇。
後面繼續項目的部署,這裏主要說說篇pm2和nginx


pm2和forever

1、forever

在提到pm2先說說 forever這個東西,使用過node.js可能都是有知道forever這個東西的。
顧名思義,就是讓腳本永遠的運行,除非你手動寫命令去關閉。

關於forever的使用方法有兩種,一種是命令行的形式,還有一種就是 forever-monitor

在這裏特地提forever,是因為pm2和forever的功能很相似,不用pm2,用forever也是能夠同樣部署的。

forever啟動

  forever start app.js
        
JSON配置文件

除了通過js去運行 ,還可以配置json文件,例如

├── forever
│   └── development.json
└── index.js

// forever/development.json
{
	// Comments are supported
    "uid": "app",
    "append": true,
    "watch": true,
    "script": "index.js",
    "sourceDir": "/home/myuser/app"
}
        

然後運行

  forever start ./forever/development.json        
2、pm2

pm2詳細用法可以參考 官方文檔,寫的相當詳細,很不錯。

附上 pm2中文版文檔

一張圖pm2和forever

技術分享

數據只是擔保活躍的程度
不過重點還是介紹pm2

PM2是一個帶有負載均衡功能的Node應用的進程管理器。它可以保持Node應用一直後臺運行,在不停止的前提下更新,優化了系統任務管理。

pm2的安裝

 npm install pm2 -g
        

啟動項目

pm2 start app.js
            

常用命令一覽

# General

$ npm install pm2 -g           # 安裝 PM2

$ pm2 start app.js             #啟動, Daemonize and auto-restart application (Node)

$ pm2 start app.py             # 啟動, Daemonize and auto-restart application (Python)

$ pm2 start npm -- start       # 啟動, Daemonize and auto-restart Node application


# Cluster Mode (Node.js only)
$ pm2 start app.js -i 4         # 啟動四個應用程序實例

                               # 會給每個網絡裝載網絡均衡器

$ pm2 reload all               # 立即重啟所有工作進程

$ pm2 scale [app-name] 10       # 使用10個工作進程


# Process Monitoring
$ pm2 list                     # 列出所有PM2啟動的進程

$ pm2 monit                     # 列出每個程序的詳細情況和CPU使用情況

$ pm2 show [app-name]           # 列出程序的所有信息


# Log management
$ pm2 logs                     # 列出應用的日誌

$ pm2 logs [app-name]           # 列出某個app的日誌

$ pm2 logs --json               # 使用json格式列出日誌

$ pm2 flush
$ pm2 reloadLogs

# Process State Management
$ pm2 start app.js --name="api" # 啟動應用,並且命名‘api’

$ pm2 start app.js -- -a 34     # Start app and pass option "-a 34" as argument
$ pm2 start app.js --watch     # 當文件改變的時候重新啟動應用

$ pm2 start script.sh           # 啟動bash腳本

$ pm2 start app.json           # 啟動所有app.json中聲明的程序

$ pm2 reset [app-name]         # Reset all counters

$ pm2 stop all                 # 停止所有應用

$ pm2 stop 0                   # 停止id為0的進程

$ pm2 restart all               # 重啟所有應用

$ pm2 gracefulReload all       # Graceful reload all apps in cluster mode
$ pm2 delete all               # 關閉並刪除所有應用

$ pm2 delete 0                 # 刪除id為0的程序

            

nginx介紹

nginx做為HTTP服務器,有以下幾項基本特性:

  • 處理靜態文件,索引文件以及自動索引;打開文件描述符緩沖.
  • 無緩存的反向代理加速,簡單的負載均衡和容錯.
  • FastCGI,簡單的負載均衡和容錯.
  • 模塊化的結構。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服務器處理單頁中存在的多個SSI,則這項處理可以並行運行,而不需要相互等待。
  • 支持SSL 和 TLSSNI.
  • Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常註重效率 。它支持內核Poll模型,能經受高負載的考驗,有報告表明能支持高達 50,000個並發連接數。
  • Nginx支持熱部署。它的啟動特別容易, 並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟件版本進行進行升級。
nginx安裝

官網下載地址 nginx下載

也可參考菜鳥教程,nginx安裝配置

nginx的安裝步驟如下

一、安裝編譯工具及庫文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
        

二、首先要安裝 PCRE

1、下載 PCRE 安裝包,下載地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

[[email protected] src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
        

2、解壓安裝包:

[[email protected] src]# tar zxvf pcre-8.35.tar.gz
        

3、進入安裝包目錄

[[email protected] src]# cd pcre-8.35
        

4、編譯安裝

    [[email protected] pcre-8.35]# ./configure
    [[email protected] pcre-8.35]# make && make install
        

5、查看pcre版本

    [[email protected] pcre-8.35]# pcre-config --version
        

三、安裝 Nginx

1、下載 Nginx,下載地址:http://nginx.org/download/nginx-1.6.2.tar.gz

關於版本去官網可自行選擇新的下載地址,在linux的安裝方式還是和下面一樣

[[email protected] src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
        

2、解壓安裝包

[[email protected] src]# tar zxvf nginx-1.6.2.tar.gz
        

3、進入安裝包目錄

[[email protected] src]# cd nginx-1.6.2
        

4、編譯安裝

[[email protected] nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[[email protected] nginx-1.6.2]# make
[[email protected] nginx-1.6.2]# make install
        

5、查看nginx版本

[[email protected] nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
        

最後

以上大部分是pm2和nginx的簡單介紹以及安裝

未完待續^^……還有nginx的配置,以及在pm2如何配置nginx,綁定域名,通過外網瀏覽自己的網站……

node.js後臺快速搭建在阿裏雲(二)(pm2和nginx篇)