node.js项目线上服务器部署

图1 node.js项目线上部署思路图

假设我们电脑本地有五个项目:1.静态网站 2.电影网站 3. 手机app 4.微信小程序 5.微信公众号

这些应用都是跑在我们电脑本地,谁也看不到。我们需要放到网上供别人使用。

首先我们为这五个项目购买一个域名(当然为每个项目单独买一个域名也行),一个域名也可以分出5个二级域名来用。

比如我们可以购买imooc.com这个域名。购买域名后需要给域名备案。

其次我们购买一台服务器。我们本地电脑可以通过ssh通道连接服务器。配置用户权限,安装mongoDB,配置nodejs环境,配置nginx前置服务。

为了不让服务器受到侵害,我们还需要给服务器设置IPtables,Fail2Ban防护措施。为了不让用户访问网站时泄露个人信息或者伤害到服务器上的数据,我们还得配置SSL证书。

通过SSH通道向服务器传输项目代码,不安全而且ssh通道较小。因此我们需要一个代码托管仓库。将我们本地的项目代码上传到私有的git仓库。如果需要部署的时候,我们可以通知服务器到git仓库拷贝项目代码。再也不用从本地电脑一个字节一个字节地向服务器传输代码了。

那么问题来了,我们需要一个工具通知服务器去git仓库拷贝代码。我们可以借助PM2。在本地电脑和服务器上都安装PM2工具。我们通过git将项目上传到私有仓库。然后我们本地通过PM2通知服务器上的PM2让服务器通过git下载项目。然后PM2会协调node进程。

如果这五个项目都想抢占80端口。首先我们可以为这五个项目分别分配3000,3001,3002,3003,3004端口。然后让nginx当服务器的大门总管,由nginx持有80端口。所有想要访问服务器的用户都需要经过nginx这一关,由nginx识别用户。如果用户访问到的是电影网站,就把这个用户转发到3001端口。如果这个用户访问的是小程序的,就把这个用户转发3003端口。如果用户访问的是手机app的,首先也得通过域名,并且是通过https的协议找到服务器的80端口,nginx会通过ssl证书与它进行握手交流,沟通认证之后,便会把访客的请求转发到后台的3002端口。

端口分配好了,我们需要给这五个项目分配域名,比如可以分配五个二级域名给他们。

猜你喜欢

转载自blog.csdn.net/qq_20567691/article/details/86131971