node.js后台快速搭建在阿里云(二)(pm2和nginx篇)

前期准备

简介

嗯……我只是个前端而已



在第一部分说完了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,绑定域名,通过外网浏览自己的网站……

时间: 2024-12-11 07:18:36

node.js后台快速搭建在阿里云(二)(pm2和nginx篇)的相关文章

使用Node.js+Socket.IO搭建WebSocket实时应用

Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. 作者:潘良虎链接:https://www.zhihu.com/question/20215561/answer/26419995来源:知乎原文地址:http://www.plhwin.com/2014/05/28/nodejs-socketio/ WebSocket简介 谈到Web实时推送,就不得不说

在windows环境下基于sublime text3的node.js开发环境搭建

首先安装sublime text3,百度一堆,自己找吧.理论上sublime text2应该也可以.我只能说一句:这个软件实在是太强悍了. 跨平台,丰富的插件体系,加上插件基本上就是一个强悍的ide了.目前我在使用的主要是Emmet.Python.还有一些格式化的插件(xml,json),加上这次安装的node.js. node.js的安装就不用多说了,直接http://nodejs.org/ 点击install下载window版本的安装程序后安装即可.默认的安装会将安装目录加到path环境变量

Node.js web快速入门 -- KoaHub.js

介绍 KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上. //base controller, admin/controller/base.controller.js export default class extends koahub.http{ constructo

Mac OS X下面 Node.js环境的搭建

MAC下面的Node.js环境的搭建 1.第一步安装Xcode-----安装homebrew包管理工具---安装Node.js ----安装文档数据库MongoDB ---最后安装缓存Redis 2.安装文本编辑器sublimeText 3.最后web storm 1.去home-brew官网把那行安装命令复制 直接复制放到命令行里面去 2.然后再次打开终端 执行 brew install nodejs 3.可以查看node的版本  node —version 4.安装文档数据库 brew in

基于 Koa.js 平台的 Node.js web 快速开发框架KoaHub.js demo 可安装

KoaHub.js demo KoaHub.js KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上. github地址:http://github.com/einsqing/koahubjs demo 下载安装 //下载 git clone https://github.

Node.js 博客搭建

Node.js 博客搭建:https://www.linuxidc.com/Linux/2017-02/140115.htm https://www.cnblogs.com/mrcln/p/9308729.html 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/11725444.html

通过阿里云4层代理nginx到本地服务器

1.在阿里云上购买slb并配置转发信息2.选择使用阿里云nginx转发服务器 阿里云ecs服务器安装的nginx必须安装模块--with-stream模块 配置nginx方向代理到主机的机房(配置在nginx.conf文件中,)stream { upstream tcp_proxy {server 10.83.32.207:22;}server {listen 9999;proxy_pass tcp_proxy;}} 原文地址:https://blog.51cto.com/whitehat/23

基于Hexo+Node.js+github+coding搭建个人博客——基础篇

附上个人教程:http://www.ookamiantd.top/2017/build-blog-hexo-base/ 搭建此博客的动机以及好处在此就不多谈了,之前已经表达过,详情请看Start My Blog Trip - Power By Hexo 记录一下搭建的基本过程以及遇到的一些问题,仅供参考 = =废话不多说,进入主题 Hexo博客搭建的基础大致流程为: 安装Node.js →安装Git → 安装Hexo → 安装主题 → 本地测试运行 → 注册给github与coding并创建pa

使用Node.js+Socket.IO搭建WebSocket实时应用【转载】

原文:http://www.jianshu.com/p/d9b1273a93fd Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. WebSocket简介 谈到Web实时推送,就不得不说WebSocket.在WebSocket出现之前,很多网站为了实现实时推送技术,通常采用的方案是轮询(Polling)和Comet技术,Comet又可细分为两种实现方