CentOS7系统中node安装配置

薛兰
• 阅读 2665
导语:本篇讲解如何配置node开发环境,让你的node代码可以正常的在网页中运行。

准备工作

  • linux centos7操作系统
  • ssh软件
  • nginx

node资源

想要了解更多关于node的内容,请访问:

nodejs官网

安装node

本次安装介绍两个版本的安装方法,一个是源码安装,另一个是已编译版本安装,

  • 源码安装
  • 已编译版本安装

源码安装

  • 第一步,到官网查看最新源码,并下载
cd /home/downloads
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0.tar.gz
  • 第二步,解压源码
tar xzvf node-v10.16.0.tar.gz
cd node-v10.16.0
  • 第三步,安装编译软件
sudo yum install gcc gcc-c++
  • 第四步,编译安装
./configure
make
sudo make install

大概需要半个小时时间,编译完成查看版本号。

node --version

如果有显示版本号,说明安装成功。

已编译版本安装

  • 下载已编译版本
cd /home/downloads
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz
  • 解压
tar -xvf node-v10.16.0-linux-x64.tar.xz
mv node-v10.16.0-linux-x64  /home/soft/node10
  • 建立软连接

这样就可以全局使用了。

ln -s /home/soft/node10/bin/npm /usr/local/bin/
ln -s /home/soft/node10/bin/node /usr/local/bin/
  • 查看版本
node -v
npm -v

自动化node

  • 安装pm2管理软件
npm install pm2 -g
  • 全局配置
ln -s /home/soft/node10/bin/pm2 /usr/local/bin/pm2
  • pm2常用命令

启动:pm2 start app_name|app_id
停止:pm2 stop app_name|app_id
删除:pm2 delete app_name|app_id
重启:pm2 restart app_name|app_id
停止所有:pm2 stop all
查看所有的进程:pm2 list
查看所有的进程状态:pm2 status
查看某一个进程的信息:pm2 describe app_name|app_id

nginx配置node环境

  • 新建nginx配置文件,输入以下内容。
vi /etc/nginx/vhost/node.conf

在里面输入:

server {  
  listen   80;  # 监听端口
  server_name  node.example.org; # 访问域名  
  access_log  /var/www/node/access.log; # 成功日志
  error_log  /var/www/node/error.log; # 错误日志
  location / {
    proxy_pass http://127.0.0.1:3000;
  }
  # 静态文件图片规则
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    expires  30d;
  }
  # 静态文件js、css规则
  location ~ .*\.(js|css)?$ {
    expires  1h;
  }
}
  • 打开3000端口。
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload

配置完了以后重载重启nginx。

systemctl reload nginx
systemctl restart nginx

然后创建一个node文件,访问地址,便可以看到输出结果。

  • 创建目录:mkdir /var/www/node
  • 创建文件: vi /var/www/node/app.js
  • 输入以下内容:
// 保存为app.js文件
// 引入http模块
const http = require('http');
const port = 3000;

const success = {
    msg: "get_succ",
    code: 201,
    data: {
        list: [
            {"id":1,"name": "alun"},
            {"id":2,"name": "mark"},
            {"id":3,"name": "jean"}
        ]
    }
}

const error = {
    msg: "get_fail",
    code: 101,
    data: {
        info: 'this request failed,again try!'
    }
}

const authy = {
    msg: "no visited!",
    code: 403,
    data: {
        info: 'not visited!'
    }
}

// 建立http服务
const serve = http.createServer((req,res) => {
    var lawDomainList = "http://localhost:9925";
    res.setHeader('Content-Type', 'text/plain;charset=utf8');
    res.setHeader("Access-Control-Allow-Origin",lawDomainList);
    if (req.url == '/api') {
        res.end(JSON.stringify(success));
    } else {
        res.end(JSON.stringify(error));
    }
    res.end(authy);
})
// 监听端口
serve.listen(port,function(){
    console.log('serve is running on port 3000!');
})

启动node程序,pm2 start app.js

预览

在本地hosts文件增加解析记录,这里的ip就是你远程服务器的ip地址了。

192.168.1.123 node.example.org

打开游览器,输入http://node.example.org 就可以看到之前编辑的站点的node文件内容了。

原文内容:https://guanqi.xyz/note/cento...

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
GoJS API学习
varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Node.js 中使用 ECDSA 签名遇到的坑
文/Fenying最近有个朋友问我关于Node.js下使用ECDSA的问题,主要是使用Node.js的Crypto模块无法校验网络传输过来的签名结果。在踩坑无数后,终于搞清楚了原因。坑0x00:签名输出格式在排除了证书、消息不一致的可能之后,我开始对比使用Node.js签名的结果与网络传输过来的签
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
薛兰
薛兰
Lv1
秦时明月汉时关,万里长征人未还。
文章
5
粉丝
0
获赞
0