目錄
1.配置云服務器(略講)
2.vscode連接(ssh連接)
3.本地壓縮項目包
4.傳輸項目
5.配置項目依賴
6.運行項目
1.啟動 FastAPI 后端(Python 部分)
2.啟動 Next.js 前端(Node.js 部分)
3.本地電腦訪問項目
7.域名解析(要備案)
域名解析所需條件
操作流程
注意事項
8.部署項目
第一步:檢查Nginx
第二步:配置nginx
第三步:(按i進入編輯模式)
第四步:(激活配置文件)
第五步:(重啟Nginx)
1.配置云服務器(略講)
擁有自己的云服務器和域名
推薦阿里云和騰訊云
以阿里云為例,先創建密鑰對,然后配置服務器。
新手默認選擇ecs-user用戶,除非特別了解自己在做什么,不然這個最安全。
2.vscode連接(ssh連接)
記得自己的服務器公網ip和密鑰位置
本地計算機安裝了vscode之后,然后下載這個插件Remote - SSH
接著打開小電腦
右鍵SSH,打開config配置,新手用上面那個配置,針對個人。
以下是用戶級配置文件與系統級配置文件的對比表格:
對比維度 | 用戶級配置文件(C:\Users\34970\.ssh\config ) | 系統級配置文件(C:\ProgramData\ssh\ssh_config ) |
---|---|---|
作用范圍 | 僅對當前用戶(34970賬戶)生效,不影響其他用戶的 SSH 連接設置 | 對計算機上所有用戶生效,所有用戶的 SSH 連接都會受其配置影響 |
權限要求 | 當前用戶擁有完全讀寫權限,無需管理員權限即可修改 | 需管理員權限才能修改,普通用戶默認無修改權限 |
默認存在性 | 系統不自動創建,需用戶手動創建或通過工具(如 VS Code)自動生成 | 安裝 OpenSSH 組件時可能自動生成,包含默認全局配置項 |
配置優先級 | 優先級更高,若與系統級配置沖突,會覆蓋系統級配置中的對應項 | 優先級較低,僅在用戶級配置中無對應設置時生效 |
適用場景 | 個人化連接需求(如特定服務器的用戶名、密鑰、端口等個性化配置) | 全局通用配置(如所有用戶的統一代理、超時時間等公共設置) |
修改風險 | 誤操作僅影響當前用戶,風險范圍小 | 誤操作可能導致所有用戶連接異常,風險范圍大 |
然后點擊箭頭在當前窗口連接,如果之前連結果,那么第二次連接主機保存密鑰會改變,要清空一下主機記錄。
本地終端輸入ssh-keygen -R 云服務器公網ip
接著再進行連接,他會給云服務器下載vscode配置,然后連接成功進入云服務器頁面。
3.本地壓縮項目包
由于項目里面存在許多依賴,所以安裝7zip,只壓縮項目本身文件集。
:: 進入項目根目錄(假設項目在 C:\Users\34970\Desktop\partjava)
cd C:\Users\34970\Desktop\partjava
:: 執行 7-Zip 壓縮(使用你的 7z.exe 路徑)
"C:\Program Files\7-Zip\7z.exe" a -tzip ../partjava.zip . -xr!node_modules (根據個人情況看哪些不要)
進入項目終端,壓縮除依賴部分到項目所處主目錄。壓縮之后就剩下主文件。
左邊是項目文件夾,右邊是壓縮包。
4.傳輸項目
把項目傳到服務器,在主頁創建文件夾傳到文件夾內。
scp "本地壓縮包位置" ecs-user@公網ip:/home/ecs-user/i/
打開本地終端傳遞。
傳輸成功后,在云服務器下載unzip
可以先更新一下sudo apt update
sudo apt install unzip安裝unzip
到壓縮包指定位置cd /home/ecs-user/i? 輸入ls看看是不是指定位置
解壓文件到當前文件夾unzip partjava.zip
5.配置項目依賴
由于我項目包含了vue3和python,所以我得安裝node.js和npm(或者yarn)以及python3 python3-pip
# 安裝 Node.js 18(長期支持版)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
輸入npm -v以及node -v
開始安裝vue3依賴npm install
開始安裝python依賴,進入python項目文件,然后看看有沒有python環境,一般Ubuntu是有python3環境的,python3 -v?pip3 -v
python3 -version輸出版本號
先進python項目文件夾
開始下載python依賴庫(看看python版本安裝對應虛擬環境sudo apt install python3.10-venv)
1.創建虛擬環境:python3 -m venv venv
2.激活虛擬環境(Linux):source venv/bin/activate
3.下載庫:pip3 install -r requirements.txt
6.運行項目
1.啟動 FastAPI 后端(Python 部分)
進入項目根目錄(確保在 partjava-ai 目錄下):
cd ~/i/partjava-ai ?# 替換為你的實際路徑
激活虛擬環境(已創建并安裝依賴的前提下):
source venv/bin/activate ?# Linux/Mac 系統,終端會顯示 (venv)
啟動 FastAPI 服務(關鍵:綁定公網訪問):
uvicorn main:app --host 0.0.0.0 --port 8000
main:app:表示運行 main.py 中的 app 實例(FastAPI 應用入口)。
--host 0.0.0.0:允許外部(包括你的本地電腦)訪問服務器上的后端。
--port 8000:指定后端運行在 8000 端口(可自定義,需與前端調用一致)。
啟動成功后,終端會顯示:Uvicorn running on http://0.0.0.0:8000。
2.啟動 Next.js 前端(Node.js 部分)
打開新終端(避免與后端終端沖突,VS Code 中可點擊終端右上角 + 號新建)。
進入前端目錄(通常是項目根目錄,包含 package.json):
cd ~/i ?# 替換為前端代碼所在路徑
啟動前端開發服務器:
npm run dev ?# 或 yarn dev(根據項目依賴管理工具選擇)
啟動成功后,終端會顯示:Local: http://localhost:3000。
3.本地電腦訪問項目
端口轉發(通過 VS Code 實現本地 ? 云服務器通信):
按 Ctrl+Shift+P 打開命令面板,輸入 Ports: Show Ports 調出端口視圖。
分別轉發兩個端口:
后端端口:輸入 8000 → 轉發后本地可通過 http://localhost:8000 訪問后端。
前端端口:輸入 3000 → 轉發后本地可通過 http://localhost:3000 訪問前端。
在本地瀏覽器查看:
訪問 http://localhost:3000 → 看到前端頁面(Next.js 應用)。
前端會自動調用后端 API(若代碼中已配置 http://localhost:8000 作為后端地址),實現全棧交互。
7.域名解析(要備案)
域名解析所需條件
域名注冊
需要擁有一個已注冊的有效域名,域名需通過ICANN認證的注冊商購買(如GoDaddy、阿里云等)。
DNS服務器
需配置權威DNS服務器(如Cloudflare、AWS Route 53)或使用注冊商提供的免費DNS服務。DNS服務器負責存儲域名對應的解析記錄。
解析記錄類型
根據需求添加以下常見記錄:
- A記錄:將域名指向IPv4地址。
- AAAA記錄:將域名指向IPv6地址。
- CNAME記錄:將域名別名指向另一個域名。
- MX記錄:指定郵件服務器地址。
- TXT記錄:用于驗證或SPF配置。
操作流程
配置DNS解析
- 登錄域名注冊商或DNS服務商的管理后臺。
- 進入域名解析設置頁面,添加或修改解析記錄。
- 保存變更,等待全球DNS緩存刷新(通常需10分鐘至48小時)。
驗證解析生效
使用以下工具檢查解析是否正確:
- 命令行:
nslookup example.com
或dig example.com
- 在線工具:DNSChecker、WhatsMyDNS。
注意事項
- 確保域名未過期且狀態正常(無鎖定或暫停)。
- 多層緩存可能導致延遲,修改記錄后需耐心等待。
- 復雜場景(如CDN、負載均衡)需結合CNAME或NS記錄配置。
8.部署項目
可以先ctrl+c暫停前端,然后配置Nginx。
也可以不暫停,新建一個終端。
第一步:檢查Nginx
# 檢查是否安裝
nginx -v
# 未安裝則執行(Debian/Ubuntu)
sudo apt update && sudo apt install nginx -y
# 或(CentOS/RHEL)
yum install nginx -y
第二步:配置nginx
# 進入配置目錄 cd /etc/nginx/sites-available/
# 創建并編輯配置文件(用你的域名命名,如 example.com)
sudo vim example.com
第三步:(按i進入編輯模式)
server { # 監聽 80 端口(HTTP) listen 80;
# 填寫你的域名(如 example.com 或 www.example.com)
server_name example.com www.example.com;
# 前端項目:將域名根路徑代理到前端服務(3000 端口)
location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
# 后端 API:將 /api 開頭的請求代理到后端服務(8000 端口)
location /api { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
保存配置(按 Esc 后輸入 :wq 回車)
第四步:(激活配置文件)
刪除默認配置的軟鏈接(關鍵!)
sudo rm /etc/nginx/sites-enabled/default
# 創建軟鏈接到生效目錄
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
檢查配置是否有誤
sudo nginx -t
第五步:(重啟Nginx)
sudo systemctl restart nginx
然后瀏覽器訪問域名就ok了。
9.云服務器后臺持續進程
# 安裝 pm2(全局) npm install -g pm2
兩個終端:
# 啟動前端(后臺持久化)cd /home/ecs-user/
pm2 start npm --name "frontend" -- run dev
# 啟動后端(后臺持久化)
pm2 start "uvicorn main:app --host 0.0.0.0 --port 8000" --name "backend"
# 重啟運行Nginx
sudo systemctl restart nginx
10.數據庫擴展
Ubuntu 系統
更新軟件包列表:
打開終端,執行以下命令,確保軟件包列表是最新的:
sudo apt update
安裝 MySQL 服務器:
執行命令安裝 MySQL 軟件包:
sudo apt install mysql-server
配置 MySQL(可選):
安裝完成后,可以使用 mysql_secure_installation 腳本進行一些安全配置,如設置 root 用戶密碼、刪除匿名用戶、禁止 root 遠程登錄等:
sudo mysql_secure_installation
按照提示輸入密碼并選擇相應的操作即可。
驗證安裝:
通過以下命令檢查 MySQL 服務是否正在運行:
sudo systemctl status mysql
如果服務狀態顯示為 active (running),表示安裝成功。可以使用 mysql 命令進入 MySQL 命令行客戶端,驗證能否正常登錄和操作數據庫:
sudo mysql -u root -p
輸入密碼后回車進入。