启动 Node.JS 服务需要开启两个阿里云主机窗口, 一个是数据库 mongoose 服务, 一个是 Node.JS 服务器 2. 如果 Node.JS 服务器监听你的阿里云主机 ip 失败, 可以尝试使用 0.0.0.0.(因为阿里云限制了端口号的, 官方说是 3398 端口但是笔者尝试无效, 0.0.0.0 的 ip 表示监听当前主机所有端口号)
Node.JS 项目部署到服务器的具体方法如下:
准备工作:
运行一个 Node.JS 程序需要哪些流程
(1) 你的电脑安装了 node
(2) 你的电脑安装了 NPM
默认情况下安装了 node,NPM 也一并安装了
(3) 你的电脑安装了数据库
通常 Node.JS 项目使用 MongoDB 数据库
(4) 编写你的项目源代码
(5) 启动 MongoDB 服务
cd 到 MongoDB 安装包路径使用终端命令: mongod --dbpath=[你的 data 文件夹路径]
(6) 启动 node 运行你的程序
cd 到 node.exe 所在目录使用终端命令: node [你的项目服务器入口文件 App.JS 路径]
默认情况下安装 node 会自动帮你配置环境变量, 我们可以在任意目录下使用 node 命令
2, 服务端项目部署到阿里云的原理
无非只是将上一步的所有流程都安装在阿里云的主机上
可以理解为: 购买了阿里云的服务器之后, 阿里云给你单独准备了一台可以外网访问的电脑, 然后我们要在这台电脑上来运行我们的 Node.JS 程序.
Node.JS 项目部署到服务器:
1, 先购买一个服务器.
2, 购买域名.
3, 购买数据库.
我们购买服务器之后, 默认服务器有一定的存储空间, 如果用户量不是很大, 没有必要单独买数据库数据库的配置都是一样, 如果是想学习 Node.JS 开发, 可以不买, 直接使用服务器主机存储.
4, 进入控制台, 开始部署项目
找到你刚才购买的轻量服务器
注意: 服务器的终端是基于 Linux, 与 Mac 系统是一样的, 与 Windows 系统部分命令有一些区别
5, 绑定域名: 点击刚才的 Node.JS 服务器进入详情界面绑定域名
6, 使用 XShell 远程连接服务器
默认情况下, 我们操作远程服务器是在阿里云的页面上点击远程连接, 他会在网页上弹出你的远程服务器的终端窗口, 我们直接这样操作不方便, 使用 XShell 工具可以可视化的看到你的远程服务器上的一些文件
SChell 还有一个好处就是我们将写好的 Node.JS 项目文件上传到远程服务器更加方便
下载地址自行百度, 这里笔者给出一个参考下载地址: http://rj.baidu.com/soft/detail/15201.html?ald
安装之后打开 XShell 面板
7, 配置阿里云服务器电脑的 node 环境和 NPM 环境
使用 ls 命令查看服务器的文件列表
使用 cd 命令进入对应文件夹
使用 node -v 和 NPM -v 检查你的 node 版本和 NPM 版本
默认情况下阿里云已经配置好了 node 和 NPM
如果想要升级你的阿里云服务器的 node 版本和 NPM 版本, 按照顺序在终端输入以下命令 (可选)
wget 命令下载 Node.JS 安装包: wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz
该安装包是编译好的文件, 解压之后, 在 bin 文件夹中就已存在 node 和 NPM, 无需重复编译.
解压文件: tar xvf node-v6.9.5-Linux-x64.tar.xz
8, 安装 MongoDB
在终端输入命令等待安装: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.5.tgz
耗时比较长, 请耐心等待
解压安装包: tar zxvf MongoDB-Linux-x86_64-3.4.5.tgz
重命令文件夹为 MongoDB:mv MongoDB-Linux-x86_64-3.4.5 MongoDB
创建存放 MongoDB 数据的 data 文件夹: mkdir /root/mymongodb,mkdir /root/mymongodb/data
注意: 这里的 / root 指的是你的阿里云服务器根目录的名字, 默认为 root
9, 启动 MongoDB
cd 到你的 MongoDB 的 bin 目录, 例如我的 MongoDB 安装路径为: cd /root/MongoDB/bin
运行 MongoDB 服务: mongod --dbpath=[刚才创建的 data 文件夹路径], 例如我这里是 mongod --dbpath=/root/mymongodb/data
如果出现 wating for connection on port 27017 表示成功
是不是感觉和在自己电脑部署基本一样? 别急, 才刚刚一半
10,MongoDB 服务需要单独占用一个终端窗口, 所以暂时目前终端窗口不动, 我们另起一个窗口来启动我们的 Node.JS 项目
11, 等等? 目前我们的服务器上有我们的终端项目吗? 好像没有吧?
所以关键的第 11 步, 我们需要将我们的源代码部署到阿里云服务器主机上
12, 下载 Xftp
Xftp 的作用就是文件传输到阿里云服务器
13, 利用 Xshell 来启动 Xftp
Xftp 下载后我们放一边, 无需单独启动, 因为只要你安装了 Xftp, 就可以使用 Xshell 来启动
如果你单独配置 Xftp 一定要注意端口号与我们的 Xshell 一致, 仔细往上翻图片可以看到我的 Xshell 端口号是 22
14, 上传 Node.JS 项目文件到阿里云服务器
启动 xftp 也需要输入你的服务器密码, 别忘记了右边是你的本地项目, 左边是你的阿里云主机目录, 直接拖拽即可
15, 在阿里云服务器启动你的 Node.JS 项目
(1)App.JS 文件监听的端口号不能写成你的服务器 ip 地址, 建议写成 0.0.0.0
原因一言难尽, 因为你不知道阿里云到底允许你监听什么端口 (不知道什么端口是有权限监听的)
0.0.0.0 与 127.0.0.1 都是指本机 ip, 他们唯一的的区别是, 0.0.0.0 相当于监听了这台服务器的所有端口
(2)Xshell 的那个 MongoDB 的窗口千万别关, 我们需要再开一个窗口来启动我们的 nodej 项目
- //4. 监听端口号 server.listen(3000,'0.0.0.0',function () {
- console.log('服务器启动成功');
- });
16, 大功告成, 直接在任何联网设备输入你的域名即可, 这里我就用我的 iPhone 输入我的域名咯
1. 如果域名未备案, 会弹出该网站禁止访问, 要求备案的页面, 不用管, 多刷新几次就 OK
4G 网络百分百不行, Wi-Fi 刷新几次就可以
2. 你的 Node.JS 项目中除开导入模块之外, 其他任何地方都不能出现相对路径./, 原因是 Node.JS 中的相对路径是相当于你输入 node 命令所在的目录而言的
来源: http://www.css88.com/qa/node-js/10679.html