部署前後端分離專案
阿新 • • 發佈:2021-08-12
我在第一次部署前後端分離專案的時候出現一些問題,在這裡總結一下:
部署的專案後端使用asp.net core 3.1 ,前端使用Vue2
將打包好的前端和後端專案拉取到伺服器,這裡使用的是Linux伺服器,我專案存放路徑 /var/www/com-project 隨後進入後端檔案的目錄執行後端程式碼:我這裡使用的是PM2執行後端程式碼測試程式是否正常執行 dotnet run 如果正常執行就可以直接運行了pm2 start "dotnet <<專案名稱.dll>>" #執行和專案名稱相同的dll檔案 如果配置裡靜態檔案處理要確認是否有靜態檔案處理定義的相關路徑,否則專案無法執行
接下來就是配置nginx檔案了
這裡是/etc/nginx/con.f 下前端的配置檔案
server{ listen 80; server_name cms.lx15149.com; return 301 https://cms.lx15149.com$request_uri;#當訪問到http時轉到https } server{ listen 443;#監聽的埠 server_name cms.lx15149.com; ssl on; ssl_certificate /etc/nginx/ssl_common/fullchain.cer; ssl_certificate_key /etc/nginx/ssl_common/*.lx15149.com.key; location / { root /var/www/cms-project/dist;#這裡是前端檔案所在的資料夾 index index.html;#預設的首頁檔案 try_files $uri $uri/ /index.html;#這裡是解決vue重新整理後報錯404 } }
這裡是/etc/nginx/con.f 下後端的配置檔案
upstream cmsbackend{#cmsbackend可以自己命名,但是cmsbackend應該是唯一的,接下來的cmsbackend也應該對應 server localhost:5000;#這裡是後端執行時顯示的執行位置 } server{ listen 80; server_name cmsbackend.lx15149.com;#這裡應該與前端和後端連結時的基礎url return 301 https://cmsbackend.lx15149.com$request_uri;#當訪問到http時轉到https } server{ listen 443; server_name cmsbackend.lx15149.com; ssl on; ssl_certificate /etc/nginx/ssl_common/fullchain.cer; ssl_certificate_key /etc/nginx/ssl_common/*.lx15149.com.key;#後端程式碼一定要https證書,否則會因為安全問題被拒絕訪問 location /{ proxy_pass http://cmsbackend; } }
如何生成https證書請自行查閱其它文章