大家好,如果您还对nodejs部署到服务器不太了解,没有关系,今天就由本站为大家分享nodejs部署到服务器的知识,包括nodejs如何部署到服务器上的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
一、nodejs如何部署到服务器上
有几种部署方式,由项目复杂度而定。
最简单的。
简单的小网站可以使用Node.js作为web服务器,不做前后端分离,使用后端模板填充数据,代表框架express。
如果要做负载均衡或者响应多端请求,那么采用前后端分离。前端代码可以放在CDN或nginx这类静态服务器上,前端向Node.js服务端发送rest请求。代表框架koa。
如果业务更加复杂,有较多的CPU密集型任务需要执行,那么Node.js后面再接一层服务器(J*a、Python)来处理。
另外由于Node.js是单线程进程,一旦出错就会崩溃,导致服务端无法访问。所以部署Node.js的时候需要使用
PM2
,这样可以在Node.js程序崩溃之后及时重启,当然还有其它好处,比如灰度部署、负载均衡等。
二、如何通过输入域名访问部署在本机的nodejs服务器
修改系统的hosts文件就可以了,比如(你想用的域名为:):
node服务器的host为:localhost,端口(port):8080;
修改系统hosts文件,在末尾加一行代码:127.0.0.1 然后保存。
在浏览器输入:即可访问(前提是项目node服务器正在运行,没运行会失败);
PS:如果想输入就能访问(不加端口,其实不是没有端口只是一般80端口是默认值,可以不写),只需把node服务器的端口(port)设置为80再运行即可(当然前提是80端口没有被其他程序占用)
三、nodejs怎么部署到腾讯云服务器上
到小鸟云购买云服务器
作为一个穷逼+不熟悉服务器配置的菜鸟。选了最便宜的套餐: CPU: 1核/内存: 1024 MB/带宽:1Mbps/操作系统: CentOS
7.0购买环节会设置 ssh登陆密码,记下密码。登陆到小鸟云,查看购买的实例。注意公网 IP,下一步会用到
2.登陆服务器 sudo ssh你的服务器ip
提示输入mac的密码,提示输入服务器密码。输入后连接成功并显示服务器信息,如下:
登陆服务器后。这里对于我这个 Linux菜鸟有个大坑………就是 Linux系统常见的目录结构和文件放置区域。使用 root
用户身份登陆后,会进入到下图红色箭头标出的 root目录下。先 cd..跳转到上一层,再 ls-a
,就可以看到类似下图的目录结构了。
3.安装 node和 mongodb
node–编译后二进制文件应在/usr/local/bin/node下 mongodb–安装在/usr/local/mongodb下
下面就一步一步来,首先升级CentOS
yum-y update1
升级后,跳转到/usr/local/src,这个文件夹通常用来存放软件源代码
cd/usr/local/src1
nodejs代码,也可以使用scp命令上传,因为实在太慢了。
wget 注*根据最新版本号为准12
解压
tar-xzvf node-v0.12.5.tar.gz1
进入解压后的文件夹
cd node-v0.12.51
执行配置脚本来进行编译预处理
./configure1
编译源代码
make//注*这个时间可能会很久12
当编译完成后,需要使之在系统范围内可用,
编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下
make install1
安装 express和 forever,这两个模块都推荐 global安装
npm-g install express forever1
建立超级,不然 sudo node时会报“mand not found”
sudo ln-s/usr/local/bin/node/usr/bin/nodesudo ln-s/usr/local/lib/node
/usr/lib/nodesudo ln-s/usr/local/bin/npm/usr/bin/npmsudo ln-s
/usr/local/bin/node-waf/usr/bin/node-wafsudo ln-s/usr/local/bin/forever
/usr/bin/forever12345
Nodejs到这里就基本安装完成了。
下面来安装mongodb
软件安装位置:/usr/local/mongodb数据存放位置:/var/mongodb/data
日志存放位置:/var/mongodb/logs
首先安装包
cd/usr/localwget
解压安装包,重命名文件夹为mongodb
tar zxvf mongodb-linux-x86_64-2.6.0.tgzmv mongodb-linux-x86_64-2.6.0
mongodb12
创建数据和日志存放目录
mkdir/var/mongodbmkdir/var/mongodb/da*kdir/var/mongodb/logs123
打开rc.local文件,添加CentOS开机启动项:
vim/etc/rc.d/rc.local1
将mongodb启动命令追加到本文件中,让mongodb开机自启动:
/usr/local/mongodb/bin/mongod--dbpath=/var/mongodb/data--logpath
/var/mongodb/logs/log.log-fork12
关闭 vim后,手动启动mongodb
/usr/local/mongodb/bin/mongod--dbpath=/var/mongodb/data--logpath
/var/mongodb/logs/log.log-fork12
看到类似的信息,说明已启动成功。我在这里发了个傻,以为26308是port号,导致后面设置port时折腾了好久。其实这里的 forked
process和 port号是两个东西,这个是程序本身在Server上的进程。
forked process: 263081
启动mongo shell
cd/usr/local/mongodb/bin/./mongo12
在 mongo shell中创建管理员及数据库
use admin//admin数据库db.createUser({user:
"用户名",pwd:"登陆密码",roles:["userAdminAnyDatabase"]
//超级管理员})use databaseFoo//node要连接的数据库db.createUser({user:
"用户名",pwd:"登陆密码",roles:["readWrite"]
//读写权限})111213
到这里 mongodb基本已经安装设置完成了。具体数据的迁移导入可自行研究。
4.配置及启动node
我们把 node的程序放在/home下
四、如何用命令行开启nodejs搭建web服务器
首先,需要安装nodejs,这个可以去官网,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node-v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
var = require('');
var url= require('url');
var path= require('path');
var fs= require('fs');
var dir, arg= process.argv[2]||'';//命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
//比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
//且你想以debug文件夹启动web服务
.createServer(function(req, res){
var pathname= __dirname+ url.parse(req.url).pathname;
五、服务器部署nodejs的几种方法
由于自身特*的原因。node程序必须保持开启才能访问网站,而当我们关闭SSH时这些进程都会被停止。有以下3种方法可以避免这个问题。
screen
Screen,虚拟终端管理器。可以在后台管理终端界面,防止SSH断开以后任务停止运行。
安装方法:
sudo apt-get screen(以ubuntu为例)
使用方法:
使用screen-S [任意id]命令进入一个名为id的终端,此时便可以随意执行操作
例如执行sudo apt-get upgrade,或者其它消耗时间比较长的工作,像编译内核等等。
按ctrl+a后再按d保存虚拟终端,系统提示deatached即为保存成功
接下来可以断开SSH终端,虚拟终端仍会执行。
访问已经创建好的终端
screen-ls列出已经创建的正在后台运行的终端
screen-r xxx进入终端
例如 screen-r terminal1
彻底退出
screen-r进入终端后执行exit即可完全退出
PM2
pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着
安装方法
npm install-g pm2
使用方法
启动应用pm2 start-watch .js
重启应用pm2 restart .js
显示进程列表pm2 list
停止某应用pm2 stop _name|_id
停止所有应用pm2 stop all
小白方案
个人目前用的是宝塔Linux面板,可以说是把Linux的各种操作都已比较简单的形式展现出来了,不需要什么Linux知识就能掌握宝塔官网了解一下
而这其中内置了PM2管理,装一下就OK了