服务器部署项目总结

news2024/11/18 0:24:30

服务器部署项目总结

yzh 24/3/15

前言

本着一定成功的信心去部署前后端分离的项目,结果却“路遇坎坷”😭😭😭😭

代码和程序总是无情的啊,当然,也是因为一段时间没学习对于知识模糊了,其实很Easy的Bug

自己看了很长时间没解决(🤡🤡🤡🤡属于是joker本了)

但是解决的过程是充实和享受的,成功的快感更是无法言表的😀😀😀。

✊ 👊 🤛 🤜谨以此篇记录这次历程吧✊ 👊 🤛 🤜

代码的背后都是白云苍狗,愿我们都做SUCCESS的高手!💯💯💯💯💯

一、服务器与项目

服务器是室友波波买的,赞助方(不过他是第一次买,他不太懂买成了win系统,不过没关系,重装centos7小问题),和他一起看绑定域名,备案,创建服务器实例等等。OK,服务器搞定。宿舍公司的一台服务器完成了

项目的话,是我去年暑假写的一个办公系统,基于”SpringBoot+Vue+Activiti+微信公众号“的前后端分离系统,拿来部署作为实践挺不错的。但是,因为上周末电脑重装了系统,所以我本机的环境什么的我都删了,一个不留(前提是重要的东西备份)。所以也费了时间去装本机的编程环境,然后拉gitee上自己原来提交的代码,开始在电脑测试。

🧑‍💻到此遇见了第一个问题,原来的前端代码,所用依赖的node.js是14.15.0,但是我并不想用这么低的node,所以就装了NVM来切换node版本,好家伙,装了两次,docs里面可以用node -命令,但VS里面的终端用不了,就离谱的很。最后索性都装C盘了,小小Node-Sass(这玩意必须依赖匹配,一个版本对应一个,我前端并不好,好多东西我并不清楚,只能是nvm来切换了)
在这里插入图片描述

就这样,前后端环境在本机可以跑通了,阶段性胜利。

二、服务器环境配置

服务器环境配置是云龙来弄的,当时我正在自己电脑上弄本地的环境和测试,所以他做的

🧑‍💻遇到第二个问题,

如果只是简单的部署项目只需要 “java环境、mysql、nginx、redis(如果需要)“。

验证安装的应用是否实际可用,mysql和redis开启远程连接服务。确保云平台的安全组的端口打开,并开启服务器对应的防火墙端口和重新加载。(哈哈哈,因为他腾讯没开端口防火墙,一直访问不到,最后他给重装了,哈哈哈)
在这里插入图片描述

三、上传部署到服务器

前端VS里面的配置和java代码中yaml文件的配置都写好了,然后分别打包dist文件夹和jar包,上传到服务器。

🧑‍💻首先对于nginx的反向代理知识,我认真的反省自己确实模糊了(很简单的东西),也搜资料慢慢配。随后访问网站,最开始是404问题,nginx中的配置路径写错了;然后502,网关问题,启动jar包,OK没有了;接着403,jar包启动出错了(查资料,打日志)最后是redis的问题,然后就傻傻的看网上的教程,redis的远程连接打开了,重新写路径打包上传+启动。-------这些也花了不少时间。然后,他可以访问了,我和云龙非常高兴,认为已经胜利了,殊不知灾难来临😣😣😣😣😣…

🧑‍💻当晚还沉浸在解决BUG,成功部署,发朋友圈的庆祝中;可是凌晨波波给我说网站被攻击了,我嘞个艹啊,但当时以为无伤大雅,早上起来再看吧;好家伙,服务器直接崩了进不去了(tnnd的狗黑客),直接把服务器当肉鸡打别人的ip,还给里面加了好多病毒(后来我排毒的时候,还tm给权限改了😡 🤬😡 🤬,命令程序删了,艹😡 🤬😡 🤬)。

在这里插入图片描述

🧑‍💻花了几个小时去把服务器的病毒排掉(就不该自己去丰富动手能力慢慢解决,耗时耗力,早知道就重装了!),找到了一堆问题。经过比对和排查
在这里插入图片描述

最后得出就是Redis开放了远程连接,让黑客钻了空子,非常轻松的把服务器黑了

利用Redis的未授权访问漏洞进行攻击。Redis 默认配置为6379端口无密码访问,如果redis以root用户启动,攻击者可以通过公网直接链接redis,向root账户写入SSH公钥文件,以此获取服务器权限注入病毒

🧑‍💻最后错基本排完了,再次上传jar包和dist,开端口,运行--------->艹,错了,而且在十几分钟后,服务器由挂了,直接打不开。腾讯云客户端建议重装客户端…果断重装!!!👿👿👿👿👿
在这里插入图片描述

四、重装系统再次部署
痛定思痛,重装系统

🧑‍💻更换服务器公网IP,改掉ssh的端口,nginx的端口,只开3306端口,其他都不开(除非要用再开)

使用ssh秘钥,修改各类配置的密码,设的复杂(得写记事本记录,不然把自己给防了)

再次部署!!!

满怀期待能够成功,结果:认证失败,无法登录,emmmmm,试了n次,还是一样的结果。我还一度怀疑我是不是手抽了,把哪里的代码删了或者改了,然后打断点,看啊找啊。结果都没出现错误,本地也跑了几次,完全OK。对服务器的数据库用户和密码,以及对于项目数据库也增删改了几次,还是不行

🧑‍💻最后在打jar之前在认证的部分加了一些log,打印到控制台显示日志,上传到服务器运行,将log拿出来看,没想到还是nginx出错了,啊呀,我是废物🤡🤡🤡🤡🤡🤡,因为没有出现对于nginx的标准性错误,而且还和后端接口路径是200 OK 是连通着的,就没多想,ε=(´ο`*)))唉。路径里面多了一个/prod-api/,然后在反向代理的路径上面再就给它加个正则表达式,忽略掉它就好了

rewrite ^/api/(.*)$ /$1 break;# url重写

./nginx -s reload, 在浏览器输入IP和端口,OK,输入用户名和密码 =====> 进去了!!!!!!!!!!!!!!!!!!!👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏
在这里插入图片描述

在这里插入图片描述

五、总结

代码的背后都是白云苍狗,愿我们都做SUCCESS的高手!💯💯💯💯💯

代码成就万世基积沙镇海

梦想永在凌云意意气风发

任何执拗都会成为过往,只有时间会告诉你对错。

人们总爱说一句话:认真你就输了。而我更相信另一句话。认输,你才真的输了

Conclude

🧑‍💻首先,遇到了一波又一波的Bug,真挺难受的,也怪自己见得不够多,学的不够深。一段时间没敲代码就把已经学过的知识给忘了,这是很不好的,学无止境啊,再次理解这句话,不能停止学习,要始终向前学习~。

🧑‍💻但是呢,我觉得解决Bug的过程更多的收获,我再次一遍遍复习了Linux的知识和命令使用,再次巩固了项目部署的诸多知识点,进一步加强了对运维,对网安的重视性。更好的理解了前后端交互和对接的思想,还是非常GOOD的!

🧑‍💻网络安全从自我做起;维护网络安全,打击恶意黑客人人有责!!!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ollama】(7):使用Nvidia Jetson Nano设备,成功运行ollama,运行qwen:0.5b-chat,速度还可以,可以做创新项目了

1,视频地址 https://www.bilibili.com/video/BV1Pj421o7W5/ 【ollama】(7):使用Nvidia Jetson Nano设备,成功运行ollama,运行qwen:0.5b-chat,速度还可以,可以做创新项目了 2&#x…

PMP的学习方法

PMBOK编撰了管理项目需要的49个过程(输入、工具技术、输出)。工具技术文件,林林总总百余个。第一部分,按照十大知识领域顺序从前到后编排;第二部分,按照五大过程组顺序重新编排了一遍。 一,PMB…

【Poi-tl Documentation】区块对标签显示隐藏改造

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板&#xff1a; 删除行表格测试.docx 改造前测试效果 package run.siyuan…

数据结构——通讯录项目

1.通讯录的介绍 顺序表是通讯录的底层结构。 通讯录是将顺序表的类型替换成结构体类型来储存用户数据&#xff0c;通过运用顺序表结构来实现的。 用户数据结构&#xff1a; typedef struct PersonInfo {char name[12];char sex[10];int age;char tel[11];char addr[100]; }…

Java Web 概述

XML基础 XML概述 XML(exiensile markup language&#xff0c;可扩展标记语言)是一套定义语义标记的规则&#xff0c;这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言&#xff0c;可以定义其他与特定领域有关的、语义的、结构化的标记。 XML与 HTML 都…

【C语言步行梯】各类操作符、类型转换与原码、反码、补码详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 算术运算符原码、反码、补码介绍移位运算…

【C语言步行梯】C语言实现三子棋游戏(含详细分析)

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 需求分析具体实现主函数体菜单实现游戏实…

LLM之RAG实战(三十)| 探索RAG语义分块策略

在LLM之RAG实战&#xff08;二十九&#xff09;| 探索RAG PDF解析解析文档后&#xff0c;我们可以获得结构化或半结构化的数据。现在的主要任务是将它们分解成更小的块来提取详细的特征&#xff0c;然后嵌入这些特征来表示它们的语义&#xff0c;其在RAG中的位置如图1所示&…

【GitHub】使用git链接下载很慢?试试服务器配置SSH,起飞

参考文献 保姆级教学&#xff0c;教你用配置SSH拉取github代码 CentOS ssh -T gitgithub.comgit config --global user.name "learnore" git config --global user.email "15200831505163.com"cd /root/.ssh vim id_rsa.pubGitHub Settings 结果 下载速…

力扣L13--- 409.最长回文串(JAVA版)-2024年3月1日

1.题目描述 2.知识点 注1&#xff1a;向下取整是将一个数值向下舍入到最接近的整数&#xff0c;但不超过这个数值的整数。具体规则如下&#xff1a; 对于正数&#xff0c;向下取整后得到的整数是不大于原数值的最大整数&#xff1b; 对于负数&#xff0c;向下取整后得到的整数…

uniapp——第2篇:编写vue语法

前提&#xff0c;建议先学会前端几大基础&#xff1a;HTML、CSS、JS、Ajax&#xff0c;还有一定要会Vue!&#xff08;Vue2\Vue3&#xff09;都要会&#xff01;&#xff01;&#xff01;不然不好懂 一、去哪写&#xff1f; 就在【pages】的你的人一个页面文件夹里的【.vue】文…

简单的网页制作

1网页编写格式 <!DOCTYPE html> <html><head><meta charset"utf-8"> <title>中文测试。。。。</title></head><body>这里是测试body测试内容。。。</body> </html>2标签 在body内<h1></h1&…

突破编程_前端_JS编程实例(工具栏组件)

1 开发目标 工具栏组件旨在模拟常见的桌面软件工具栏&#xff0c;所以比较适用于 electron 的开发&#xff0c;该组件包含工具栏按钮、工具栏分割条和工具栏容器三个主要角色&#xff0c;并提供一系列接口和功能&#xff0c;以满足用户在不同场景下的需求&#xff1a; 点击工具…

中间件 | RPC - [Dubbo]

INDEX 1 Dubbo 与 web 容器的关系2 注册发现流程3 服务配置3.1 注册方式 & 订阅方式3.2 服务导出3.3 配置参数 4 底层技术4.1 Dubbo 的 spi 机制4.2 Dubbo 的线程池4.3 Dubbo 的负载均衡策略4.3 Dubbo 的协议 1 Dubbo 与 web 容器的关系 dubbo 本质上是一个 RPC 框架&…

leetcode代码记录(动态规划基础题(斐波那契数列)

目录 1. 题目&#xff1a;2. 斐波那契数列&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a…

基于高德地图JS API实现Vue地图选点组件

基于高德地图JS API2.0实现一个搜索选择地点后返回给父组件位置信息的功能&#xff0c;同时可以进行回显 目录 1 创建key和秘钥1.1 登录高德地图开放平台1.2 创建应用1.3 绑定服务创建秘钥 2 使用组件前准备2.1 导入loader2.2 在对应的组件设置秘钥2.3 引入css样式 3 功能实现…

【C语言】整型提升与算术转换

一、表达式求值 在我们平常的表达式求值的题目中&#xff0c;虽然看似是道很简单的题目&#xff1b;但是出题人总是会埋坑&#xff0c;其中最常见的就是整型提升与算术转换。 二、整型提升 C语⾔中整型算术运算总是⾄少以缺省(默认)整型(int)类型的精度来进⾏的&#xff1b;…

【MySQL基础】MySQL基础操作二

文章目录 &#x1f34e;1.数据库约束&#x1f350;约束类型&#x1f346;1.1NOT NULL&#x1f346;1.2UNIQUE&#x1f346;1.3DEFAULT&#x1f346;1.4PRIMARY KEY&#x1f346;1.5FOREIGN KEY &#x1f34f;2.查询操作&#x1f35f;2.1聚合查询&#x1f354;2.1.1聚合函数&…

视频号电商的风口来了!这个消息还有多少人不知道?

大家好&#xff0c;我是电商糖果 短视频做电商&#xff0c;这几年的热度真的是非常高&#xff0c;就是因为热度太高了&#xff0c;才让视频号也动了电商的心思。 腾讯推出的视频号是为了和抖音对打&#xff0c;这几年靠着微信输送的流量&#xff0c;视频号的日活已经渐渐有赶…

JavaSE-----认识异常【详解】

目录 一.异常的概念与体系结构&#xff1a; 1.1异常的概念&#xff1a; 1.2一些常见的异常&#xff1a; 1.3异常的体系结构&#xff1a; 1.4异常的分类&#xff1a; 二.异常的处理机制&#xff1a; 2.1 抛出异常&#xff1a; 2.2异常的捕获&#xff1a; 2.3try-catch-&…