node项目在服务器的部署

首先我假设题主的应用已经在本地正常运行,功能测试完毕。现在遇到的问题是,怎么让这个应用在「网上」运行起来。

其实题主的问题在于对一些概念还不熟悉,只要熟悉之后就不会有疑问了。

  1. 网络应用需要运行在真正的服务器上,也就是你说的「放在哪」。

  2. 服务器基本就是一台电脑,你在本地怎么运行应用,在服务器上同样怎么运行。

  3. 通过命令行工具(Mac 的终端或 Windows 的 CMD)登录你的服务器,然后就和在本地电脑上基本一样了。

不过要想完全自己独立运行一个应用,除了应用本身之外,你还得了解一些其他的东西

服务器

服务器你可以选择阿里云或美团云的云服务器(ECS),最便宜的配置是一个月100块左右。对云服务器你几乎可以像对待自己电脑一样折腾(装系统,装软件,配置)。美团比阿里便宜一点。

你也可以选择虚拟主机,价格便宜,但权限有限,相当于用别人电脑。虚拟主机我没用过,就不多说了。

选服务器就像买电脑,你得先把电脑「买回来」。

买服务器的时候你需要选一下系统,一般都是 Linux。但是你会看到 CentOS、Ubuntu、Debian 等,这些是 Linux 的不同「版本」,彼此之间大同小异。不要选 Windows。

你可以选自己熟悉的,或者先去了解一下各自的优缺点后决定。我一直用 CentOS,最新版是 CentOS7 64位。

最后你会拥有一台装好 Linux 系统的服务器。通常你会有一个服务器 IP,和一组管理员用户名和密码,用来登录服务器。你在服务器上的所有操作都需要先登录后进行。

通过终端登录服务器的命令是 ssh root@xxx.xxx.xxx.xxx。这个命令让你以 root 用户身份登陆服务器。

装软件

要运行一个完整的可以访问的应用,你大概需要以下几个软件:

Nginx:反向代理服务器,用来处理用户的访问请求。
Node.js:嗯。
npm:管理各种需要的库包,这个你应该已经很熟悉了。
数据库:安装你使用的数据库,也许是 MongoDB 或 MySQL。

上传

现在你需要把本地的应用上传到服务器。前面我没有说在服务器上的硬盘,如果你选的是阿里云或美团云的服务器的话,一般会有两块硬盘,一块系统盘,25G左右,另一块数据盘,容量是你自己选的。

美团的服务器给你的时候已经把数据盘加载好了,就是 /data 目录,阿里云的可能需要自己手动加载硬盘的,建议也加载到 /data 目录,便于管理。

上传最原始的办法是 FTP,把你的应用文件夹上传到服务器的 /data 目录,除了 node_modules 文件夹不要上传,那里面是一大坨各种库。待会儿我们直接在服务器上安装它们。

不过现在通常会使用 Git 来上传。比如我一般是本地推到 Github,服务器再从 Github 取回。如何使用 Git 需要你单独学习。

运行应用

现在假设你已经把应用上传好了,也通过 npm install 命令装好了所有需要的库,那么现在应用就可以运行了。操作方法和你本地的一样,在「终端」里登录服务器,进入应用文件夹,运行 npm start

用这种方法启动应用,当你关闭「终端」时应用就停掉了。所以你需要一个工具——pm2。

npm install -g pm2 安装好之后,通过 pm2 start yourApp.js 来启动应用。关于 pm2 的使用请阅读文档,非常简单。

这里有一个需要你注意的问题就是「环境」。通常在本地开发时应用是运行在「development」环境的,但在服务器上要运行在「production」环境。运行环境是你在启动时指定的,比如 NODE_ENV=production pm2 start yourApp.js 就是告诉 pm2 以 production 环境启动应用。

这两种环境的区别是你自己写代码区分的,比如开发环境连接数据库使用一套用户名和密码,生产环境使用另一套,或者有些库只在开发环境加载,在生产环境不需要加载等等。

现在,你可以通过 <your server ip>:<your app port> 来访问应用了。比如假设你在本地访问应用是通过 localhost:3000,那现在把 localhost 换成你的服务器 IP 就行。

域名和Nginx

上面那个访问地址太丑了,自己用用还行,不可能给用户公开使用。这是你需要有一个「域名」,并把它解析到你的服务器上。

关于注册域名,设置 DNS 解析,你需要单独学习。

有了域名之后,你可以通过<域名>:<端口>来访问应用了,这样还不行。通常用户只会通过「域名」访问服务,这其实就是访问的80端口(你的应用可能在3000端口上),所以我们需要 Nginx,把用户访问80端口的请求,转发到3000端口上。

你需要做的是修改 Nginx 的配置文件,实现这个功能。如何设置 Nginx 端口转发,你也需要单独学习。

总结

  1. 购买服务器(或虚拟主机);

  2. 安装必要的软件(Nginx、Node.js、npm、数据库等);

  3. 上传应用;

  4. 安装应用需要的依赖;

  5. 安装 pm2,使用 pm2 启动应用;

  6. 设置域名解析和 Nginx,使用户可以通过域名访问应用。

需要单独学习的东西:

  1. 选购服务器和系统

  2. 基本的 Linux 命令和操作

  3. 服务器上传

  4. pm2 的使用

  5. 域名的购买和解析

  6. Nginx 的使用和设置

扩展学习的东西:

  1. SSH Key(免密码登录服务器)

  2. Git 上传和版本管理

到此为止,你就可以运行起一个基本款的应用了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值