伺服器部署專案總結

ANnian-Blog-Coder發表於2024-03-15

伺服器部署專案總結

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來切換了)

就這樣,前後端環境在本機可以跑通了,階段性勝利。

二、伺服器環境配置

伺服器環境配置是雲龍來弄的,當時我正在自己電腦上弄本地的環境和測試,所以他做的

  • 🧑‍💻遇到第二個問題,

  • 如果只是簡單的部署專案只需要 “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的!

  • 🧑‍💻網路安全從自我做起;維護網路安全,打擊惡意駭客人人有責!!!

相關文章