部署Node.js项目(CentOS)
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效,非常适合运行在分布式设备的数据密集型的实时应用。Node.js 的包管理器 npm,是全球最大的开源库生态系统。典型的应用场景包括:
- 实时应用:如在线聊天,实时通知推送等等(如socket.io)
- 分布式应用:通过高效的并行I/O使用已有的数据
- 工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序
- 游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)
- 利用稳定接口提升Web渲染能力
- 前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(如著名的纯Javascript全栈式MEAN架构)
适用对象
本文档介绍如何在阿里云CentOS系统的云服务器ECS实例上,安装Nodejs并部署项目。
准备工作
部署之前,请做如下准备工作:
- 购买ECS实例
- 您的实例运行的镜像是CentOS7.2
- 您的实例可以连接公网
- 本地已经安装用于连接 Linux 实例的工具,如 Xshell
基本流程
使用云服务器 ECS 安装Nodejs并部署项目的操作步骤如下:
- 购买 ECS 实例。
- 部署Node.js环境-二进制文件安装。
- 部署Node.js环境-使用NVM安装多版本。
- 部署测试项目。
注:2和3步骤,根据您的实际应用场景,任选其一。
操作步骤
步骤 1:创建ECS实例
选择操作系统为公共镜像CentOS7.2。使用root用户登录Linux实例。
步骤2:部署Node.js环境—二进制文件安装
该部署过程使用的安装包是已编译好的二进制文件,解压之后,在bin文件夹中就已存在node和npm,无需手工编译。
安装步骤:
1、 wget命令下载Node.js安装包。
该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编译。
wget https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.xz
2、 解压文件。
tar xvf node-v8.2.1-linux-x64.tar.xz
3、创建软链接,使node和npm命令全局有效。
通过创建软链接的方法,使得在任意目录下都可以直接使用node和npm命令:
ln -s /root/node-v8.2.1-linux-x64/bin/node /usr/local/bin/nodeln -s /root/node-v8.2.1-linux-x64/bin/npm /usr/local/bin/npm
4,查看node、npm版本。
node -vnpm -v
5、至此,Node.js环境已安装完毕。
软件默认安装在/root/node-v8.2.1-linux-x64/目录下。如果需要将该软件安装到其他目录(如:/opt/node/)下,请进行如下操作:
mkdir -p /opt/node/mv /root/node-v6.9.5-linux-x64/* /opt/node/rm -f /usr/local/bin/noderm -f /usr/local/bin/npmln -s /opt/node/bin/node /usr/local/bin/nodeln -s /opt/node/bin/npm /usr/local/bin/npm
步骤3:部署Node.js环境-使用NVM安装多版本
NVM(Node version manager)是Node.js的版本管理软件,使用户可以轻松在Node.js各个版本间进行切换。适用于长期做 node 开发的人员或有快速更新node版本、快速切换node版本这一需求的用户。
安装步骤:
1、直接使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本。
yum install gitgit clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
2、激活NVM。
echo ". ~/.nvm/nvm.sh" >> /etc/profilesource /etc/profile
3、列出Node.js的所有版本。
nvm list-remote
4、安装多个Node.js版本。
nvm install v8.2.1nvm install v7.4.0
5、查看已安装Node.js版本,当前使用的版本为v8.2.1。
[root@iZuf62didsxigy36d6kjtrZ .nvm]# nvm ls-> v8.2.1v7.4.0
6、切换Node.js版本至v7.4.0。
[root@iZuf62didsxigy36d6kjtrZ .nvm]# nvm use v7.4.0Now using node v7.4.0
NVM的更多操作请参考帮助文档:
nvm help
步骤4:部署测试项目
1、新建项目文件example.js。
cd ~touch example.js
2、使用vim编辑器打开项目文件example.js。
yum install vimvim example.js
输入“i”,进入编辑模式,将以下项目文件内容粘贴到文件中。使用“Esc”按钮,退出编辑模式,输入“:wq”,回车,保存文件内容并退出。
项目文件内容:
const http = require('http');const hostname = '0.0.0.0';const port = 3000;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World\n');});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);});
注:项目文件内容中的3000为端口号,可以自行定义。
3、运行项目。
node ~/example.js
注:可以使用命令“node ~/example.js &”将项目置于后台运行。
4、使用命令查看项目端口是否存在。
netstat -tpln
5、在浏览器中输入http://IP:端口号 访问项目。

重启防火墙,允许端口访问
执行
firewall-cmd --permanent --zone=public --add-port=3000/tcp
firewall-cmd --permanent --zone=public --add-port=3000/udp
这样就开放了相应的端口。
执行重启防火墙
firewall-cmd --reload
使最新的防火墙设置规则生效。
注:
启动防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
查看 状态 systemctl status firewalld
方式二:
我当前使用的是Centos7
首先在官网查看当前最新的版本
https://nodejs.org/en/download/current/
我现在最新的是
https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.xz
移动到目录
cd /usr/local/
在centos中执行命令下载(可根据当前的版本情况下载最新的版本)/usr/local/目录中可能会需要root读写权限wget https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.xz
下载完成后解压
tar xvJf node-v8.2.1-linux-x64.tar.xz
tar zxvf node-v8.2.1-linux-x64.tar.xz 重命名为node
mv node-v8.2.1-linux-x64 node 配置环境变量
vim /etc/profile
在最后边添加
- #set for nodejs
- export NODE_HOME=/usr/local/node
- export PATH=$NODE_HOME/bin:$PATH
保存退出(:wq)执行命令是更改生效source /etc/profile
我执行之后依然不行,重启之后才可以使用命令
使用命令查看版本,出现相应版本号则表示成功
node -v
npm -v
-------*-*-*-*-*-*---------
最后不建议用新的测试版,用的的时候会出现许多错误
建议使用官网的LTS版本
部署Node.js项目(CentOS)的更多相关文章
- 如何线上部署node.js项目
来源:http://blog.csdn.net/chenlinIT/article/details/73343793 前言 最近工作不是很忙,在空闲时间学习用node+express搭建自己的个人博客 ...
- 阿里云部署Node.js项目(CentOS)
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又 ...
- 阿里云ECS服务器部署Node.js项目全过程详解
本文详细介绍如何部署NodeJS项目到阿里云ECS上,以及本人在部署过程中所遇到的问题.坑点和解决办法,可以说是全网最全最详细的教程了.同时讲解了如何申请阿里云免费SSL证书,以及一台ECS服务器配置 ...
- 【转载】在Centos系统上采用二进制文件部署Node.js环境
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又 ...
- 【从零开始学习Node.js】一.在CentOS 7中部署Node.js环境
一.背景信息 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用来方便快速地搭建易于扩展的网络应用.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量又高效 ...
- IIS 部署 node.js ---- 基础安装部署
一些可能有用的相关文章: https://blogs.msdn.microsoft.com/scott_hanselman/2011/11/28/window-iisnode-js/ http://b ...
- Linux环境部署Node.js
介绍 先前在阿里云ECS上部署Node.js,碰到不少坑,都是自己不仔细造成的,所以准备再部署一遍,并记录下来.我将我的服务器重置了,这次选择的是CentOS 7.4 64位,上次的是7.2的. 使用 ...
- [Node.js] Node.js项目的持续集成
原文地址:http://www.moye.me/2016/03/03/nodejs_ci_by_jenkins 引子 持续集成 (Continuous Integration,简称CI)是一种软件工程 ...
- WebStorm中Node.js项目配置教程(1)——创建项目
Node.js绝对是一个web开发的热点话题,作为web神器的WebStorm也是开发Node.js的佼佼者. 接下来就Node.js项目在WebStorm的配置操作就行详细的讲解,首先是创建项目.两 ...
随机推荐
- JAX-RS REST 服务结果的自动封装
如转发请注明: 原文luyiisme博客 当使用遵循 JAX-RS 标准的框架开发REST 服务时,我们倾向于定义个(含有JAX-RS)注解接口. 服务器端负责实现该接口,而客户端是该接口的代理进行远 ...
- 【笔记】记一次.net语法await和async的异步编程实验与笔记。
1.实践代码全记录: using System; using System.Collections.Generic; using System.Diagnostics; using System.Li ...
- 安卓巴士android源码、博文精选1
每周精选 第 53 期 精品源码 Android开源项目--CookMan 厨客APP 简介CookMan,厨客,是一款查询.搜索.分类.收藏菜谱功能的APP.|52数据来源Mob A ...
- spring +springmvc+mybatis组合总结
springmvc+spring+mybatis整合:1. 拷贝所需jar2. 创建spring配置文件(beans.xml)3. 配置数据源 <bean id="dataSource ...
- Hadoop生态系统图解
Hadoop生态架构图 参考文章: Hadoop生态系统介绍 HDFS架构 1.NaneDode:主节点,**存储文件的元数据**如文件名,文件目录结构,文件属性(生成时间,副本数量,文件权限),以及 ...
- Android事件分发理解
Android事件分发机制是个难点和重点,结合下各家,写点自己的理解.. 首先抛出一个小问题,写一个button的点击事件 button.setOnClickListener(new OnClickL ...
- CentOS-7.2安装Ambari-2.4.2
一,Ambari 是什么? Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目.目前最新的发布版本是 2.4.2. ...
- STK卫星工具箱下载
简介 STK的全称是Satellite Tool Kit(卫星工具箱),STK/Pro 9.0最新出品,完整版,是由Analytical Graphics公司开发的一款在航天工业领域中处于绝对领先地位 ...
- java webservice简单的例子
开发环境:eclipse .jdk 创建服务端 demo-webservice 创建类 HelloService.java package com.hundsun.ws.service; import ...
- 极简的Android RecyclerView Adapter(使用DataBinding)
阅读本篇文章需要读者对Android Databinding和RecyclerView有一定的了解. 简介 我们知道,DataBinding的核心理念是数据驱动.数据驱动驱动的目标就是View,使用D ...