当前位置:   article > 正文

单服务器发布站点个人总结,【express】后端代码部署服务器总结

express 需要编译吗

a4c26d1e5885305701be709a3d33442f.png

第一次部署后端代码,走了很多弯路,从环境变量设置(可以看我前几篇博文)到找不到端口,找不到文件等等等,查资料查得要吐了才成功,所以写一篇博文,怕忘了(是真到怕)。

写在前面:1、express不是用express-generator的默认配置(手动写的配置)

2、后端的编程语言Typescript,所以程序的截图可能不符合JS编写的规则。

3、接收路径不是用的简单的res.get,是用装饰器+reflect-matadeta封装过

4、服务器是用的阿里巴巴的服务器

第一部分 服务器环境配置

服务器一买来肯定是白板,什么都需要自己安装,我这里列出了包的名字,可以按顺序一个个的安装。

1、node

&&  gcc

我是用的wget从网上下载的,教程百度或者google一大堆,难点是在手动升级gcc上面,教程网上也有,不做赘述。需要注意的是,gcc和node的手动安装,编译大概需要2个小时左右,在编译之前需要设置服务器的自动弹出时间。安装好gcc之后记得更新libstdc++.so.6软连接(http://blog.sina.com.cn/s/blog_5e71f0e60102znhv.html)。编译出错强制退出,除了找问题之外,一定记得,重编译之前一定要删除放编译后文件的临时文件内的内容(血与泪的教训,不然会报错,环境重复)。如果是因为服务器时间到了退出的,不用重新make,直接编译,它就会接着跑。

或者在本机下载好node文件,直接登陆服务器写软连接也可以,这是一个捷径。

2、express

这个就不用多赘述了,用的express框架

3、npm

同上​

4、net-tools(netstat)

这个可以选择安装,主要是看端口使用情况,或者端口被占用了可以查是什么进程占用的,如果是服务器进程三思而后行。需要注意的是安全组的规则是ipv4,但是你的端口规则是ipv6,最终运行的时候会报找不到的错误。

a4c26d1e5885305701be709a3d33442f.png显示6999端口情况

5、pm2

网上多数推荐forever,可是pm2也能达到需求,这个程序安装是为了在我离线的时候继续挂载后端进程,还有挂载进程的时候不会占用终端(terminal),还可以执行其它命令,安装简单,使用也很简单,信息获取很准确。如果访问失败,可以快速查看logs定位问题(感觉在打广告,哈哈哈)

a4c26d1e5885305701be709a3d33442f.png挂载表

a4c26d1e5885305701be709a3d33442f.png报错页面节选

如果都安装完了,环境方面就差不多了。

第二部分 站里的规则设置

首先,你得清楚你的express是监听的哪个端口,然后我们到后台去设置。如果不一样大概可以参考个思路。下面多图预警,图解如何添加规则。

a4c26d1e5885305701be709a3d33442f.png进入安全组

a4c26d1e5885305701be709a3d33442f.png进入配置规则

a4c26d1e5885305701be709a3d33442f.png添加安全组规则

a4c26d1e5885305701be709a3d33442f.png安全组配置参考

注:端口范围,就是你的express监听的端口的端口数。

第三部分

传输工具的准备

我用的是FileZilla,如果不愿意装程序,可以用scp上传。经过之前安装node&&gcc血的教训(安装了两天),我觉得,能简单解决就简单解决,毕竟很多时候不要高估了自己,可能事情的复杂和难的程度会超出自己的想象。

在部署代码的时候,有这么多文件需要上传,如果可视化操作会更简单。

a4c26d1e5885305701be709a3d33442f.png

如何上传,可以去网上查看教程,这里我想说一下的是登陆时候端口的问题。如果我们是通过ssh连接的服务器,是不需要写端口的,但是这里需要写端口怎么办呢?

我们可以定义一个端口,并且编写规则,如何写规则可以参考第二部分,注意,这里的端口数是自己定义的,只要不是80(外部访问的默认端口)还有服务器程序占用的端口数都可以,比如我定义的是22。

第四部分 代码的准备

在上传前,需要保证你的后端代码能够在自己的机器上跑起来。还有,上传前,对自己的代码做到心里有数(为什么我之后讲)。

a4c26d1e5885305701be709a3d33442f.png

首先,在监听部分,写入“0.0.0.0”这样让端口变成ipv4。

然后,看好你的根路径是不是“/”。

a4c26d1e5885305701be709a3d33442f.png

例如上图,我的根路径是/api,所以在访问的时候,直接访问地址是访问不到的,需要在端口后面加上“/api/inLogin”才能访问到API。

第五部分

上传代码

有了第三、四部分的充分准备后,就可以上传代码了,需要注意的是,如果用TS写的,不用传TS部分的代码,传编译后的JS代码。

上传完成后运行“npm i"安装依赖。

第六部分

运行程序并从外部访问

通过终端连接服务器,进入放后端代码的地方,将index.js用pm2挂载起来。

a4c26d1e5885305701be709a3d33442f.png

然后外部访问服务器,输入网址,如果能像下图返回结果,就成功了,如果不能,可以通过“pm2

logs”查看错误信息,再做出修改。

a4c26d1e5885305701be709a3d33442f.png

第七部分  结语

到此文结束,也只是将后端代码部署完成,现正在准备部署前端代码,前后端代码部署完成之时,才是大功告成之日。

作者也是第一次,自己买了个服务器,从什么都不会(安全组、规则、实例、域名等等)到会一点点。然后将大学学的linux指令好好的复习了一次(笑),抓狂、迷茫了很多次,毕竟小白碰到什么都是问题。

为了部署后端代码,之前只有前端代码的经验,所以学习TS(前端也可以用,我也是学了才知道)、node、express。感慨学无止境(不过小声的说,这次的API规模并不大,自用的写的也是写demo这种程度)。

夜深了,敲键盘的节奏并没有停下。未来还有很多坑要踩,为自己加油~

a4c26d1e5885305701be709a3d33442f.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/120310?site
推荐阅读
相关标签
  

闽ICP备14008679号