阿里云真好使

简介: 通过使用阿里云,让我学会了数据库

在第一天,我在服务器上安装了宝塔Linux管理面板,然后靠着宝塔的方便性,便捷的安装了一些必备的应用软件(Nginx,Tomcat,Redis,Mysql)来帮助我更好的使用服务器,在第一天,我也经历了很多新手第一次使用服务器时遇到的一些问题,比如安全组和防火墙到底什么关系?为什么宝塔界面起初开放端口的那里打不开?等等。。。在安装好了之后,我尝试性的使用了软件商店中的WORDPRESS个人博客一键部署,认识并熟悉了部署中的最关键的几步。

第二天,我打算部署前不久在本地写的一个小项目,一个视频网站,里面用到的一些中间件需要我自己安装一下,首先我安装了Kafka,然后安装了ElasticSearch,但是在安装之后,我认识到,单单不算自己未来还要部署的项目,内存就已经占用了近三分之二,并且我当时项目是两个jar包,一个是socket服务转发的一个jar包一个是负责后端的常规接口的jar包,这样肯定是运行不起来的,我就开始对配置文件里的下手,将两者最小占用减小到128M,占用内存减少了一些。

当我把这两个挨个启动时,果不其然,仍然发生了爆内存的情况,此时的阿里云服务器负载达到了100%并且宝塔面板卡住不动了, 无奈只能重启服务器,再重启服务器之后,我尝试去再次开启kafka,发现没有办法开启kafka自带的zookeeper,使用status命令查看zookeeper的状态,提示文件找不到,此时我尝试了很多方法,比如重装kafka,但是都是一直提示各种文件找不到。然后我就想到,kafka的新版不需要启动zookeeper,并且因为内置注册中心,使整个kafka比之前占用的内存小了许多,在网上好像用新版启动方式的还比较少,当时也花了一些时间去找怎么启动新的kafka。

当一切环境都准备好了之后,就开始将项目尝试部署到阿里云上,因为是前后端分离,所以先将前端的Vue程序打包为静态资源,然后将其放到Nginx下的Html文件夹中,因为对于Nginx的配置文件还不熟悉,因此没有去改动任何的属性,然后在地址栏直接输入公网的ip地址,就可以看到项目的开始页面,当然,因为没有部署后端,这个时候所有的按钮都是不可用的。

然后,开始对后端的SpringBoot项目进行打包,将打成的Jar包放到软件商店下载的 一键部署Java项目中,配置一下基本的配置,注意在输入框这里的参数server-port要在前后分别加一个空格 ,将该参数与后面的参数隔开,不然在运行的时候会报启动参数错误。成功第一次运行了Jar程序之后,打开前端页面,果然不出所料,连接不上后端,不可能啊,我都运行成功了,怎么可能连都连不上,后面检查时发现忘记把端口放开了,连接上之后报的跨域错误,在这里,我将处理跨域的后端代码加上。关于跨域问题的代码,我反正是没有在百度上找到完全拿下来就可以用的代码,都是需要自己的情况进行一下适当的修改的。。。
下面是我当时遇到的一些问题:

1.刷新页面直接404,这里百度之后在Nginx配置文件里面加了点必需的东西。

2.SpringSecurity代码没有写好,对于一些提交表单的post请求如果没有一定的权限,会进行重定向,这里重定向会导致出现跨域的错误,救急的话就直接把SpringSecurity里关于该表单提交的权限控制删掉。

3.上传文件到服务器使用了一个TransFerTo的函数,这个函数会在后台报错,说找不到xxx.bat文件,这里百度说是因为写的相对路径,然后该函数会在前面加上默认的Tomcat路径,组成一个新的路径然后存储,但是,我确定我传入的就是一个绝对路径啊!经过重重修改,在本地删除了后端代码里对OPTIONS请求处理的代码,本地不报错了,然后部署到了服务器之后还是报错,无奈将这个函数换掉,换成了copyInputStreamToFile函数。

4.关于内存小,所以不能同时运行socket服务端Jar包和后端项目接口的Jar包,就将有关socket服务的代码都合并到后端项目中,此时前端的socket请求地址要改成后端的地址,如果存在前缀也不要忘记了,当时因为落下前缀一直连接不上。

5.不要将网站保存在服务器端的资源放在tmp目录下,可以放在home下。

6.新版的Kafka如果报找不到主题的错误,就在后端yml里面设置missing-topics-fatal,这个在低版本的SpringBoot里面是没有的哦。

7.如果使用element-ui的上传文件组件,尽量将自带action设置为空,自己写一个提交函数,用来上传文件,不然在服务器部署时会报错。。。。。

其实前后从拿到服务器到部署视频网站成功花了大概5天的时间,很多时候一点简单的错误都导致我几个小时的时间被用掉,在找BUG之前其实应该先仔细思考一下这个BUG的前后联系的代码的思路,对代码的整体有一个具体的理解,然后去列出有可能出现BUG的点,对这些点进行着重的检查,这样子会让大脑变得清晰一点,而不是一着急就脑子变得混乱,对只要看到的代码就浑浑噩噩的进行测试。

总的来说,这一段时间对我有了很大的提升,对于服务器部署有了一个大概的认知,感谢阿里云给了我这个学习的机会。
原文链接:https://blog.csdn.net/SxihuanZ/article/details/125147248

相关文章
|
存储 Android开发
解决了一个大家都有可能遇到的奇葩权限问题
解决了一个大家都有可能遇到的奇葩权限问题
解决了一个大家都有可能遇到的奇葩权限问题
|
1月前
|
移动开发 JavaScript C#
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
36 0
|
11月前
|
机器学习/深度学习 数据采集 人工智能
我也曾经因安装库而抓狂,直到我遇到了
我自己印象最深的是在 Mac 上安装 pycrypto(加密)和 scipy(科学计算)模块,折腾了很久。因为这类模块并不是单纯的 Python 代码,而是需要调用诸如 C 语言的库,于是就牵涉到在不同平台上的编译,有些还不能很方便地用虚拟环境分离版本。
|
11月前
|
存储 XML JSON
简简单单搞一个实用的Android端搜索框
效果很常见,就是平常需求中的效果,上面是搜索框,下面是最近和热门搜索列表,为了方便大家在实际需求中使用,配置了很多属性,也进行了上下控件的拆分,也就是上边搜索框和下面的搜索列表的拆分,可以按需进行使用。
142 0
|
Windows
谈一谈|电脑(Windows系统)隐藏神技
谈一谈|电脑(Windows系统)隐藏神技
103 0
|
Web App开发 存储 缓存
cleanmymac x激活码怎么用?
这是Mac系统上,功能最强大的清理软件,可以智能扫描,对电脑清理和优化,提高电脑的运行速度,还可以移除恶意文件和软件。用起来也很方便。
1453 0
|
IDE 测试技术 开发工具
AirtestIDE这个隐藏的小助手,还没用过你就亏啦!
AirtestIDE这个隐藏的小助手,还没用过你就亏啦!
206 0
|
移动开发 小程序 IDE
小程序测试全攻略,还学不会你来找我(含实操代码)
小程序测试全攻略,还学不会你来找我(含实操代码)
448 0
|
缓存 Java
图床失效了?也许你应该试试这个工具
个人博客中的许多图片都裂了无法访问,于是便有了本次的这个工具。 它可以一行命令把你所有 Markdown 写的内容中的图片全部替换为新的图床。