在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目

摘要:
输入后端代码的根目录,通过npmi安装后端代码所需的库,然后启动nodepm2startendex.js。它未配置为全局。虽然它安装在全球,但我不知道为什么。与Windows不同,Linux可以自动创建一个环境变量来实现我们的整体办公室。所以我们需要在linux下创建一个软连接。

发现一台服务器部署管理多个nodejs服务,可以采用二级域名weekly.mwcxs.top,也可以采用固定后缀www.mwcxs.top/weekly的方式,本文先从固定后缀的方式部署管理多个nodejs服务。

以下详细的介绍,以周报企业管理系统为例进行部署,欢迎fork和start,源码地址:https://github.com/saucxs/weekly,展示地址:http://weekly.mwcxs.top有问题一起交流。

1、去官网下载和自己系统匹配的文件:

 英文网址:https://nodejs.org/en/download/

 中文网址:http://nodejs.cn/download/

建议去英文网站下载 ,因为中文这边没有给出稳定版,目前稳定版8点多。最新版是10点多

2、查看linux系统的位数 

通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第1张

选择64位

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第2张

3、下载下来的tar文件上传到服务器并且解压

我使用的xshell中的rz命令来上传文件

在xshell中输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行  yum   -y  install  lrzsz命令进行安装。

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第3张

安装成功后,输入rpm -qa lrzsz 命令确认是否正确安装

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第4张

输入rz或者re -y,选择刚才下的压缩包

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第5张

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第6张

现在开始解压

tar -xvf node-v8.12.0-linux-x64.tar.xz   

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第7张

修改文件夹(目录)的名字

mv node-v8.12.0-linux-x64 nodejs

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第8张

4、执行软连接

注意:确认一下nodejs下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第9张

确认有node和npm文件了

执行软链接

ln -s /home/cxs/install/nodejs/bin/npm /usr/local/bin/ 

ln -s /home/cxs/install/nodejs/bin/node /usr/local/bin/

发现自己没有权限,然后找老大要来root账号

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第10张

下面是root权限下执行

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第11张

ok了,回到自己用户下

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第12张

ok了

 5、安装pm2,通过pm2启动node可以使关闭终端时node依然运行。

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第13张

进入后端代码的跟目录,通过npm i 安装后端代码需要的库,启动node

pm2 start index.js

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第14张

说明,没有配制到全局,虽然安装到全局,不知道为啥,linux下不像windows下能自动创造一个环境变量去实现我们的全局。所以我们需要创建一个linux下的软连接。

下面红框就是pm2的安装路径,连接到全局环境路径

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第15张

下面出现的都是全局环境路径,选哪一个都可以,我选的是红框的全局环境变量/usr/local/bin

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第16张

 建立连接

ln -s /home/cxs/install/nodejs/bin/pm2 /usr/local/bin/

使用pm2 list验证是否成功建立连接

pm2 list

 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第17张

说明pm2全局安装成功,并且可以随处访问pm2,我试试我的账号是不是也可以使用pm2命令

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第18张

出现这个,说明其他账号也可以全局都可以使用pm2

 5、thinkjs项目,使用pm2 start pm2.json 来启动项目

切换到自己的账号上,需要全局变量时候没有权限的时候采用root账号

上传项目代码,使用xshell的rz -y来

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第19张

执行

pm2 start pm2.json

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第20张

出现上图应该就算启动起来了

但是我想看一下项目启动之后访问情况,怎么搞,这时候需要祭出nginx

6、nginx使用

 已经部署完成,但是公网访问出现问题,出现502,

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第21张

发现是nginx配置的问题,

方案一:把nginx的实际访问地址172.31.231.103:8362修改为127.0.0.1:8362

upstream weekly_node {
        server 172.31.231.103:8362;
    }      

方案二:把项目node的启动主机host(127.0.0.1)修改为0.0.0.0

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目第22张

附上完整的nginx服务配置

user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    upstream weekly_node {
        server 172.31.231.103:8362;
    }          
    server {
        listen  80;
        server_name  localhost;
        charset utf-8; 
        
        #weekly static
        location /weekly/ {
            #root   /home/fastdfs/nginx/weekly/dist;
            alias /home/fastdfs/nginx/weekly/dist/;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html last;
            #root  html;
            #index   index.html;
        }
    #nodejs服务方向代理
location /weekly_node/ { proxy_pass http://weekly_node; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } }

免责声明:文章转载自《在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能转解决html5 canvas 绘制字体、图片与图形模糊问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在linux中使用ramdisk文件系统 天高地厚

一 什么是RamDisk Ram:内存,Disk:磁盘,在Linux中可以将一部分内存当作分区来使用,称之为RamDisk。对于一些经常被访问、并且不会被更改的文件,可以将它们通过RamDisk放在内存中,能够明显地提高系统性能。RamDisk工作于虚拟文件系统(VFS)层,不能格式化,但可以创建多个RamDisk。虽然现在硬盘价钱越来越便宜,但对于一些...

linux系统监控示例:vmstat

一。基础演示: [nwom@WLAN-linux-3 ~]$ vmstat -n 2 10 ([nwom@WLAN-linux-3~]vmstat –n 2 10 以每2秒钟的频率执行10次取样) procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----...

[linux]进程(六)——守护进程

15,守护进程 概念:守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程的特点:守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。守护进程...

Nagios的安装配置与应用之五监控远程Linux服务器

本文出自 “曹坏水” 博客,请务必保留此出处http://cao2012.blog.51cto.com/366908/1132113 NRPE是Nagios的一个功能扩展,它可在远程Linux和UNIX主机上执行插件程序。通过在远程服务器上安装NRPE构件及Nagios插件程序来向Nagios监控平台提供该服务器的一些本地情况,如CPU负载、内存使用、硬盘...

node多版本切换

一、【NVM】 NVM (Node Version Manager): Nodejs的版本管理工具早期的nvw只支持Linux 和Mac,而window用户较多使用的是nvmw。但最近由于重装系统偶然发现已有更新nvm支持window,而且快捷方便,不需要设置环境变量。 二、【步骤】 如果已经安装过node版本,请先自行卸载,这一步很重要!!! 卸载现有n...

在VMware上制作一个简单的Linux

大体思路 boot root initrd.gzgrubvmlinuz-2.6.18-308.el5 bin sbin lib etc proc sys dev boot 有以上内容我们就可以运行一个非常简单的Linux,只需要往里面添加各种配置文件,就可以启动我们所需要的各种服务。在制作之前,我们先做一些准备工作。 1、在VMware上添...