阿里云ECS服务器搭建个人网页方案
摘要:
笔者将在这篇文章中简略介绍我们所采取的网页搭建方案,应当可以帮助想搭建个人博客等网站的读者基于阿里云ECS服务器完成简单网页的搭建。
笔者简要介绍
笔者所读专业为计算机科学与技术专业,目前是一名准大三学生。在此次暑假学校实训项目中由于学校并不给我们提供服务器等设备的支持,而且学校校园网最近取消了对ipv6地址的支持,因此想单纯通过本地设备搭建网页便不那么容易。
向学校请的培训机构老师反映后,老师给我们的帮助便是给了我们“飞天加速计划·高校学生在家实践”活动网页链接,让我们试试申请阿里云的服务器,使用具有固定ip的服务器设备部署网站。下面将简要介绍我们所采用的网页部署方案。
网页搭建方案
这里提供给读者两种方案的简要介绍。
第一种方案为直接在ECS服务器上进行网站部署,而第二种是将网页后端部署在本地服务器或者主机上,利用ECS服务器基于frp的端口映射,将其一个端口映射到本地主机部署网站的端口上,前端服务器只进行页面的展示和与用户之间的交互功能。
第二种方案的缘由是我们在使用第一种方案部署完网页后发现所选择的服务器性能不够,加上我们所运行的后端对内存占用较高,导致了我们的网站在多个用户同时访问时因为内存不足服务器将网站后端进程kill了,于是便更改了第二种方案。
直接在ECS服务器上进行网页部署
笔者团队一开始所采用的方案为直接在ECS网站上进行网页全部前后端的部署。
其中前端界面使用了js+css+html的方案。后端网页交互使用了python的flask框架,在8080端口上生成一个前端网站。但是这里问题就来了,别人并不能直接通过ip地址就访问到我们的网站,还需要在其后面加上端口号8080,不论是感觉还是使用上都不是很方便。而且如果服务器上的python脚本没有开启,用户访问便不会有界面生成,这明显不是我们想看到的。
于是,为了解决这个问题,我们采用了在ECS上还部署了nginx,让其默认显示所要展示的首页界面。这样用户访问ip时便会默认访问到这个界面。随后对其进行端口转发,在python脚本开启的时候将其转发到python脚本的端口上,这样便完成了网页的全部部署——在后端脚本开启时完成与用户的交互,在脚本未开启时显示想要显示的没有交互功能的静态界面上。
通过ECS服务器建立链接,让用户访问本地服务器上的网页
由于我们所选择的服务器只有2GiB的内存,而我们所运行的脚本在后台单个用户访问便需要1.3GiB内存,导致多个用户同时访问的时候便会导致内存不够而关闭了后台程序。为解决这个问题,我们选择了ECS服务器与本地服务器双服务器的方案。
其中ECS服务器将自己的一个端口转发到本地服务器上,在用户在网页上提交信息时将其转发到本地服务器上,由本地服务器进行响应,将响应的结果发回给ECS服务器,ECS服务器再将其转发给访问者。
这里所采取的方案与直接部署很像,前端界面使用了js+css+html的方案。后端网页交互使用了python的flask框架,区别仅在于云服务器仅进行信息的转发而不进行信息处理,大大减少了云服务器的内存损耗,使得能够支持需求内的多个用户的访问。
收获总结,展望未来
在这段时间的实训中,笔者主要负责项目网页的部署和页面后端的开发。在这个期间了解到了很多有关服务器配置与网络的知识,感觉学到了很多。在未来笔者设想对整个服务器转发过程进行改进,设想使用ECS服务器在用户和本地服务器直接建立链接,使用p2p协议对数据进行传输,从而解决ECS服务器带宽不够的问题。