言成言成啊 | Kit Chen's Blog

记录服务器的一次升级

发布于2021-08-22 08:08:09,更新于2021-08-29 16:32:41,标签:life  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

一、近况

公司8月7号搬家的吧,新环境超级好,至少比之前的好点。跟作业帮公司在一栋写字楼,作业帮在我们公司下层。

这就导致,之前我上班只需要过一条马路,5分钟,到现在骑车的话需要20分钟,坐公交需要40分钟。上下班很累,其实这样也挺好。

之前因为离公司太近了,我每天有种飘飘然的感觉,那种感觉就是我不是我的感觉了,就是缺少锻炼导致的。现在的话,也不用晨跑了,每天骑单车锻炼就行,我觉得还挺好的。之前那种出了一身大汗,精力充沛的感觉又回来了。

这段时间,之所以没有更新博客,还是有连续两周的时间,放在玩游戏上了。但是我发现,我现在没法安安静静地享受游戏了,一言不合就想去看个电影,要不挂个机?输了也无所谓。可能是因为我不再是学生时期,需要打游戏来证明自己有多强,现在好像没必要证明了。而且,打游戏浪费掉了很多提升自我的时间。

所以,我最后决定了退游。说退就退,甚至毫无留恋,可能我真的过了玩游戏的年纪。

这并不证明,我不会玩游戏了。

我昨天清电脑存储,现在唯一留下的一款游戏,《古剑奇谭三》,这种超正价值观的游戏,我觉得比较有意义。当然了,《黑神话悟空》我也是比较期待的。

21号早上6点半爬起来,去打疫苗第二针,已经40多天了,由于突发疫情,导致所有打疫苗的地方都关了。第一针是北京科兴中维,第二针是武汉生物。武汉生物是第三个获批使用的疫苗。唯一的反应就是胳膊比第一针疼啊。

二、升级服务器

周五回家的时候,就留意到了有人在群里喊485三年999,我就去了解腾讯云的活动了。

485:4核8G5M

个人版的促销活动

企业版的促销活动

反正从我的角度来看,这个企业版的超级香,忙了一上午,结果企业版的需要营业执照。最后搞了一台126的轻量服务器,我算了算一个月的出量1000G,其实够我这个小破站用,一天只有20左右个新增ip而已。

如果你之前购买过腾讯云的服务器,只需要重新注册绑定个人信息即可。我直接把旧账号注销了。

简单画了下换服务器的思维导图,服务器是windows的。

不过我后来又仔细看了,建议如果想要超大带宽,可以尝试香港轻量,各大平台峰值30M的服务器都超便宜。

2.1 服务器进行分区

打开计算机管理,开始菜单-windows管理工具-计算机管理-磁盘管理

将C盘进行压缩,压缩出来的空间,进行新建即可。

2.2 数据迁移

旧服务器与新服务器是不同厂商的,这就导致数据迁移存在很大的问题。

我的个人习惯还是比较好的,所有涉及到部署的内容,全放在了develop文件夹,直接打成压缩包,通过http传到新服务器即可。

传输的工具,有必要提一下。CuteHttpFileServer | iscute.cn,一款文件传输工具,也可以从我这里进行下载

大概是3G数据,传了一下午。

2.3 配置服务

apache

由于我是直接备份过来的,所以么有这个步骤,但是我还是想重新走一下,记录下安装过程

下载apache

解压到安装路径,进入bin目录下

安装服务

1
httpd.exe -k install -n "Apache"

卸载服务

1
2
3
httpd.exe -k uninstall -n "Apache"
# 卸载服务也可通过下面该命令
# sc delete "Apache"

如果有错误,进行修改之后,可以通过下面命令进行自测

1
httpd.exe -t

域名解析

进入阿里云域名控制台

将域名解析到你的ip,然后再配置你的web服务器里面即可。

事实证明,只要域名解析了,web服务器不用配也可以的。

期间遇到了一个问题,httphttps访问的内容不同,以为是bug,睡了一觉起来又好了,怀疑是域名解析有延迟。后来发现是由于同一个域名,解析到了两台服务器上。解析结果是根据你的网络运营商来的,哪台服务器先被解析到,就指向哪台服务器。

linux后台运行

已经习惯了win上面直接运行jar,结果linux通过命令窗口运行了jar之后,如果关闭命令窗口,就相当于是关闭了项目。

这个我是后来才知道。原来之前ids项目运行的时候,出现的问题,每次都在下班左右宕机,是这个导致的。

最好的方法

1
nohup java -jar ids0809.jar >ids.log 2>&1 &

在刚开始部署及测试SpringBoot打包的jar包时,常会将jar包抛到服务器上,直接运行 java -jar 命令来启动。但这样的话,该会话的终端窗口如果中断,程序也会挂掉,所以我们会采用nohup和&组合命令来操作。

使用nohup运行程序:

  • 结果默认会输出到nohup.out
  • 使用Ctrl + C发送SIGINT信号,程序关闭
  • 关闭session发送SIGHUP信号,程序免疫

使用&后台运行程序:

  • 结果会输出到终端
  • 使用Ctrl + C发送SIGINT信号,程序免疫
  • 关闭session发送SIGHUP信号,程序关闭
1
nohup java -jar app.jar &

这种方式启动项目会默认生成一个nohup.out的文件来记录日志,而且这个文件太占磁盘空间,所以为了减少磁盘被大量消耗,设置启动项目时不输出nohup.out文件。

可以采用如下两种方式:

1
2
3
4
# 把标准输出重定向到空设备,即只输出错误信息到日志文件
nohup java -jar app.jar >/dev/null 2>log &
# 把标准输出和标准错误全重定向到空设备,即不输出日志
nohup java -jar app.jar >/dev/null 2>&1 &

两个shell语法的解释:

1. >/dev/null

这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

2. 2>&1

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

发布:2021-08-22 08:08:09
修改:2021-08-29 16:32:41
链接:https://meethigher.top/blog/2021/server-migration/
标签:life 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏