赞
踩
第一次部署后端代码,走了很多弯路,从环境变量设置(可以看我前几篇博文)到找不到端口,找不到文件等等等,查资料查得要吐了才成功,所以写一篇博文,怕忘了(是真到怕)。
写在前面: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,最终运行的时候会报找不到的错误。
显示6999端口情况
5、pm2
网上多数推荐forever,可是pm2也能达到需求,这个程序安装是为了在我离线的时候继续挂载后端进程,还有挂载进程的时候不会占用终端(terminal),还可以执行其它命令,安装简单,使用也很简单,信息获取很准确。如果访问失败,可以快速查看logs定位问题(感觉在打广告,哈哈哈)
挂载表
报错页面节选
如果都安装完了,环境方面就差不多了。
第二部分 站里的规则设置
首先,你得清楚你的express是监听的哪个端口,然后我们到后台去设置。如果不一样大概可以参考个思路。下面多图预警,图解如何添加规则。
进入安全组
进入配置规则
添加安全组规则
安全组配置参考
注:端口范围,就是你的express监听的端口的端口数。
第三部分
传输工具的准备
我用的是FileZilla,如果不愿意装程序,可以用scp上传。经过之前安装node&&gcc血的教训(安装了两天),我觉得,能简单解决就简单解决,毕竟很多时候不要高估了自己,可能事情的复杂和难的程度会超出自己的想象。
在部署代码的时候,有这么多文件需要上传,如果可视化操作会更简单。
如何上传,可以去网上查看教程,这里我想说一下的是登陆时候端口的问题。如果我们是通过ssh连接的服务器,是不需要写端口的,但是这里需要写端口怎么办呢?
我们可以定义一个端口,并且编写规则,如何写规则可以参考第二部分,注意,这里的端口数是自己定义的,只要不是80(外部访问的默认端口)还有服务器程序占用的端口数都可以,比如我定义的是22。
第四部分 代码的准备
在上传前,需要保证你的后端代码能够在自己的机器上跑起来。还有,上传前,对自己的代码做到心里有数(为什么我之后讲)。
首先,在监听部分,写入“0.0.0.0”这样让端口变成ipv4。
然后,看好你的根路径是不是“/”。
例如上图,我的根路径是/api,所以在访问的时候,直接访问地址是访问不到的,需要在端口后面加上“/api/inLogin”才能访问到API。
第五部分
上传代码
有了第三、四部分的充分准备后,就可以上传代码了,需要注意的是,如果用TS写的,不用传TS部分的代码,传编译后的JS代码。
上传完成后运行“npm i"安装依赖。
第六部分
运行程序并从外部访问
通过终端连接服务器,进入放后端代码的地方,将index.js用pm2挂载起来。
然后外部访问服务器,输入网址,如果能像下图返回结果,就成功了,如果不能,可以通过“pm2
logs”查看错误信息,再做出修改。
第七部分 结语
到此文结束,也只是将后端代码部署完成,现正在准备部署前端代码,前后端代码部署完成之时,才是大功告成之日。
作者也是第一次,自己买了个服务器,从什么都不会(安全组、规则、实例、域名等等)到会一点点。然后将大学学的linux指令好好的复习了一次(笑),抓狂、迷茫了很多次,毕竟小白碰到什么都是问题。
为了部署后端代码,之前只有前端代码的经验,所以学习TS(前端也可以用,我也是学了才知道)、node、express。感慨学无止境(不过小声的说,这次的API规模并不大,自用的写的也是写demo这种程度)。
夜深了,敲键盘的节奏并没有停下。未来还有很多坑要踩,为自己加油~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。