5

服务器部署项目总结 - ANnian-Blog-Coder

 6 months ago
source link: https://www.cnblogs.com/ANnianYzh/p/18076175
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

服务器部署项目总结

yzh 24/3/15

欢迎查看CSDN的博文https://blog.csdn.net/AN_NI_112/article/details/136749033?spm=1001.2014.3001.5501

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

代码和程序总是无情的啊,当然,也是因为一段时间没学习对于知识模糊了,其实很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来切换了)

  • 2988256-20240315201404244-774974549.png

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

二、服务器环境配置

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

  • 🧑‍💻遇到第二个问题,

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

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

  • 2988256-20240315201449694-362167927.png

三、上传部署到服务器

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

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

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

  • 2988256-20240315201459471-1541242359.png
  • 🧑‍💻花了几个小时去把服务器的病毒排掉(就不该自己去丰富动手能力慢慢解决,耗时耗力,早知道就重装了!),找到了一堆问题。经过比对和排查

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

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

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

2988256-20240315201530028-215300381.png

四、重装系统再次部署

痛定思痛,重装系统

  • 🧑‍💻更换服务器公网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,输入用户名和密码 =====> 进去了!!!!!!!!!!!!!!!!!!!👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 👏 

  • 2988256-20240315201554761-480708564.png

    2988256-20240315201609106-771278200.png
  • =================================================================================================

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

==代码成就万世基积沙镇海

梦想永在凌云意意气风发

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

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

Conclude

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

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

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

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK