一、背景
? ? ? ? 收到朋友的求助,他拿到了一個項目的源代碼,說需要我幫助部署。部署要求是需要域名訪問。
? ? ? ? 因為沒有文檔和其他資料以及幫助,我先清理了源收到的資料:
? ? ? ? 1.后端:是java代碼,一看就是若依框架。心里大大的有底,springcloud那套。
? ? ? ? 2.前端:vue3的項目,從項目名稱看也是若依框架。不虛火,我雖然是純后端開發出生,去年帶徒弟做過vue的項目,對于開發過程很清楚。
? ? ? ? 3.數據庫:一看是mysql5.7.X的腳本,拿捏。
二、部署過程
(一)思路整理
? ? ? ? 域名訪問,要的急,就只能快速注冊一個域名,然后用香港的服務器了。不然,合規的時間太長了,本身這個小系統是個任務管理的系統,沒有啥不合規的。有了這個思路就簡單了,注冊域名=》購買服務器=》本機運行測試=》服務器安裝測試。
(二)處理過程
? ? ? ? 1.域名注冊
? ? ? ? 用的朋友的阿里云帳號,他之前實名過,所以注冊域名異常的順利,選擇了1個xyz結尾的域名。
? ? ? ? 2.服務器購買
? ? ? ? 買的香港的服務器,因為域名解析到香港的服務器不強制要求備案,當然本身是合法合規的哈!因為預算問題,買了3個月,8G內存,便宜的先用著。
? ? ? ? 3.本地調試
? ? ? ? 因為我最近1年沒有怎么寫代碼,電腦又是買的新的,所以好多東西沒有安裝。大概說明一下使用到了哪些東西。我個人喜歡從后到前的安裝順序。
? ? ? ? (1)數據庫:mysql官方 5.7.X去下載
? ? ? ? (2)數據庫訪問工具:navicat(2個文件),測試連接沒有問題
? ? ? ? (3)jdk:之前安裝的openJDK,本身可以用
? ? ? ? (4)Eclipse:之前安裝的,可以用,沒有問題。只是代碼里面用到了lombok,我沒有這個習慣,因為我的Eclipse可能因為版本的問題,5分鐘沒有解決,我就手動加上了get和set方法。
? ? ? ? (5)安裝 Node.js 、cnpm、vue cli(vue腳手架):Node.js — Download Node.js??
????????
????????node -v 看看安裝的結果。
????????下面是安裝cnpm:
????????npm install -g cnpm --registry=https://registry.npm.taobao.org
? ? ? ? 這里遇到了一個錯誤:
????????C:\Users\25011>npm install -g cnpm --registry=https://registry.npm.taobao.org npm error code CERT_HAS_EXPIRED npm error errno CERT_HAS_EXPIRED npm error request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired npm error A complete log of this run can be found in: C:\Users\25011\AppData\Local\npm-cache\_logs\2025-07-09T02_40_34_711Z-debug-0.log
? ? ? ? ? ? ? ? 輸入這個命令解決了:
npm install -g npm@latest
????????cnpm -v 看看安裝結果
? ? ? ? 下面是安裝 vue cli ,就是vue的腳手架:
????????cnpm install -g @vue/cli
????????vue -V 看看安裝結果,V大小寫敏感。????????
? ? ? ? (6)vscode:到微軟官方下載的最新版本,這個安裝后麻煩點,分別安裝了漢化、Volar插件。因為不太熟悉vscode,這里記錄一下操作,通過擴展輸入Chinese,選擇簡體中文插件,安裝的。
但是安裝后,重啟也沒有變成中文,所以還打開命令面板設置了,輸入Language,選擇Configure Display Language,進行了設置。
????????
? ? ? ? 打開命令終端是在這里:
? ? ? ? npm run dev? 是運行測試
? ? ? ? npm? run build:prod? 是正式打包,編譯到dist文件夾中,它的命令來源是:????????
? ? ? ? 4.服務器部署
? ? ? ? 主要用到了這些軟件。
(1)前端代碼是dist目前復制到nginx目錄下,修改了conf文件,指向了dist目錄。端口是80。
(2)后端是一個jar包,編寫了一個bat文件來運行。因為數據庫的密碼不一樣,密碼我在bat文件中通過 java -jar xx.jar --spring.xxx.xxx.password=xxx 來指定的。端口是8080。
(3)我訪問時出現了圖形驗證碼訪問404,發現請求的是80端口,驗證碼應該是后臺服務,端口應該是8080。所以,還需要在哪里設置一下,指定后端的服務都是訪問8080端口。發現.env.producation文件中,有后端服務的context名稱,就是prod-api,那么就可以到nginx去設置代理了。
????????
(4)nginx設置后端服務代理,第二部分就是前端訪問后端時,就訪問8080端口
????????
? ? ? ? location / {
? ? ? ? ? ? root ? dist;
? ? ? ? ? ? index ?index.html index.htm;
? ? ? ? }
? ? ? ? location /prod-api/ {
? ? ? ? ? ? proxy_pass http://localhost:8080/;
? ? ? ? }
5.域名解析設置
www.xxx.xyz=>ipv4=>輸入ip(不含http那些,就是純ip),10分鐘。
三、驗證結果
輸入http://www.xxx.xyz,訪問正常。