热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阿里云轻量应用服务器部署Node项目手记

本地和服务器环境本地:Windows1064位服务器:阿里云轻量应用服务器CentOS7.3使用的连接工具:puttymobaxterm当然还有Xshell这几个中任选一个就好啦。
本地和服务器环境

本地:Windows10 64位

服务器:阿里云轻量应用服务器CentOS 7.3

使用的连接工具:
putty
mobaxterm
当然还有Xshell这几个中任选一个就好啦。

连接工具使用方法:
创建session>ssh填入服务器IP地址和用户名(root),点击确认然后输入密码即可。
(这个是mobaxterm的使用方法,其他的也都一个套路。)

《阿里云轻量应用服务器部署Node项目手记》

Node环境搭建

使用wget命令下载Node包

wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz

解压文件

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

创建软连接,主要是为了命令可以全局有效

ln -s /root/node-v8.10.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.10.0-linux-x64/bin/npm /usr/local/bin/npm

查看是否成功

node -v
npm -v

备注 :当然也可以采用其他的方式搭建node运行环境,例如使用NVM下载,具体的我就不列出了。

执行测试项目

新建项目文件example.js。

cd ~
touch example.js

使用vim编辑器打开项目文件example.js。

yum install vim
vim example.js

输入”i”,进入编辑模式,将以下项目文件内容粘贴到文件中。使用”Esc”按钮,退出编辑模式,输入”:wq”,回车,保存文件内容并退出(这里的0.0.0.0相当于windows的127.0.0.1)

const http = require('http');
const hostname = '0.0.0.0';
const port = 80;
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}/`);
});

运行项目

node ~/example.js
//也可以用下面的代码后台运行
node ~/example.js &//后台运行
netstat -tpln//查看端口运行情况

在浏览器打开http://IP:80
如果看到Hello World,恭喜部署成功

这里有几个需要注意的

如果你用后台运行以后,这个端口会被占用,如何关闭

netstat -tpln//查看端口pid
kill -9 pid

备注 : 此时防火墙是关闭的。(not running

当我尝试打开防火墙,将端口添加到例外,并在端口(3000)上运行时,使用公网IP出现了访问不了的情况,不知道有哪位大神可以大概说明一下原因?

《阿里云轻量应用服务器部署Node项目手记》

可以看到端口已经添加到例外了:
《阿里云轻量应用服务器部署Node项目手记》

Firewalls常用防火墙命令
  • 1.查看防火墙是否在运行  

firewall-cmd --state

 

  • 2.查看都有哪些端口添加到例外

firewall-cmd --permanent --list-port   
permanent 永久配置

 

  • 3.添加端口到例外

firewall-cmd --permanent --zOne=public --add-port=3000/tcp

  • 4.查看永久例外的端口列表

[root@localhost ~]# firewall-cmd --permanent --list-port
// 80/tcp 3000/tcp

  • 5.删除端口例外

firewall-cmd --permanent --remove-port=80/tcp

  • 6.查看端口列表

[root@localhost ~]# firewall-cmd --permanent --list-port
// 3000/tcp

  • 7.停止firewald防火墙

systemctl stop firewalld

  • 8.启动firewalld防火墙

systemctl start firewalld持续运行

前面的所有完成以后,如何让这个node进程一直活着呢?

全局安装cnpm,可以大大的提升下载速度

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装pm2

cnpm install -g pm2

pm2使用

pm2 start example.js //启动服务
pm2 list //查看启动的应用
pm2 show example.js //查看详细信息
pm2 logs //查看当前信息
pm2 stop example.js //停止example
pm2 delete example.js //删除example
Linux平台安装MongoDB

MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。
下载地址:https://www.mongodb.com/downl…

下载安装包,并解压:

// 下载
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz
// 解压
tar -zxvf mongodb-linux-x86_64-amazon-3.6.3.tgz
// 将解压的包添加到指定目录
mv mongodb-linux-x86_64-amazon-3.6.3/ /usr/local/mongodb

添加到 PATH 路径中:

MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中。

export PATH=/bin:$PATH

为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。

创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(–dbpath)。
mkdir -p /data/db

命令行中运行 MongoDB 服务

你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 –dbpath 来指定。

MongoDB后台管理 Shell

如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

MongoDB常用的一些命令

MongoDB是一个基于分布文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品。

show dbs // 显示所有数据库的列表
use local // 连接到一个指定的数据库,不存在则创建

登陆数据库:

使用用户名和密码连接登录到指定数据库:

mongodb://admin:123456@localhost/test

切换数据库:

use local // 切换到该数据库下
show tables //查看所有的集合(数据表)
db.site.drop() // 删除site这个集合(数据表)

创建集合:

db.createCollection(name,options);
// eg: 创建固定大小的集合
db.createCollection('mycol',{
capped:true,
autoIndexId:true, // 自动在_id字段创建索引
size:6142800, // 整个集合大小(kB)
max:10000 //文档最大个数(数据条数)
});
当你插入文档时,MongoDB会自动创建集合:
db.mycol2.inset({"name":"bjw"});

更新文档:

db.collection.update({
, // 查询条件
, // 更新的对象
{ upsert:, // 不存在是否插入,默认false,true为插入
multi:, // 默认false,只更新找到的第一条数据
writeConcern:
}
});
// eg:
db.col.update(
{"name":"admin"},
{$set:{"passowrd":"123"}},
{multi:true} // 更新多条数据
);

删除文档:

在执行remove函数之前,先执行find()命令来判断执行的条件是否正确。(习惯问题)

db.collection.remove(
, // 条件
// justOne:true 只删除找到的第一个文档
);

查询文档:

db.collection.find();
db.col.find().pretty(); // 以格式化的方式显示所有文档
db.col.find(
{"likes":{$lt:50}}
).pretty(); // 找到like数小于50的所有文档

gt : greater than
le : less than
{$lte:50} ==> 小于等于50
{$gt:50} ==> 大于50
{$gte:50} ==> 大于等于50

三个方法:

  • limit() : 限制数据的条数
  • skip(): 跳过指定数量的数据

利用这两个方法可以实现分页。
这个方法只适合小数据的分页,如果是百万级效率会非常低。

  • sort(): 根据某个字段排序

1:升序
-1:降序

db.col.find().sort({_id:-1}); // 按照插入数据时间的降序排列
申请域名

填写主办单位信息 ==> 填写网站信息 ==>上传资料 ==> 办理拍照 ==> 提交管局 ==> 备案完成


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
author-avatar
海and云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有