记第一次使用服务器

简介: 在2022年的5月最后一天,我领到了一款阿里云ECS服务器,在领到了之后,秉持着白嫖了就尽量不要浪费的原则,第一次开始学习使用服务器。写这篇文章特此将这几天的学习经历记录一下。

在2022年的5月最后一天,我领到了一款阿里云ECS服务器,在领到了之后,秉持着白嫖了就尽量不要浪费的原则,第一次开始学习使用服务器。

写这篇文章特此将这几天的学习经历记录一下。

在第一天,我在服务器上安装了宝塔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里面是没有的哦。

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

总的来说,这一段时间对我有了很大的提升,对于服务器部署有了一个大概的认知,感谢阿里云给了我这个学习的机会。

目录
相关文章
|
安全
C2服务器
C2服务器
338 0
在选择服务器上
在选择服务器上
58 1
|
2月前
|
存储 应用服务中间件 数据库
服务器,你真的了解吗?
服务器是在网络中为其他计算机提供服务的高性能计算机,具备高速CPU运算能力、长时间稳定运行及强大的I/O能力。其主要组件包括CPU、内存、硬盘等,并通过自带管理系统进行数据控制。按外形分为塔式、机架、刀片和高密服务器;按指令集分为CISC(如x86)和RISC(如Unix、ARM);按处理器数量分为单路、双路和多路服务器;按负载类型则有数据库、应用、接入、Web和文件服务器等多种分类。每种服务器针对不同应用场景设计,满足多样化的计算需求。
39 1
|
机器学习/深度学习 存储 并行计算
|
6月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
347 3
|
应用服务中间件 nginx
服务器的简单应用
我刚开始听说服务器的时候只知道,服务器是用来处理客户端请求的,后来稍微接触了一下才知道,好多东西是基于服务器的。今天我来介绍几个简单的应用,至少不能让刚买的服务器闲置。
122 0
服务器的简单应用
|
4月前
|
缓存 Ubuntu Linux
在Linux中,Yum、Dnf、Apt-get和Pacman有何区别?
在Linux中,Yum、Dnf、Apt-get和Pacman有何区别?
|
存储 缓存 Ubuntu
服务器3
服务器3
274 0
|
小程序 网络安全 Python
我第一次使用服务器
我在阿里云服务上成功部署了我的毕设
我第一次使用服务器