1. 程式人生 > 實用技巧 >Linux伺服器上遷移專案路徑,修改nginx配置,遷移及備份MongoDB資料庫流程 (超詳細)!!!

Linux伺服器上遷移專案路徑,修改nginx配置,遷移及備份MongoDB資料庫流程 (超詳細)!!!

緣由:客戶伺服器專案路徑不是很合理,導致Jenkins自動部署時還需要新增路徑後再更新部署,所以需要把專案路徑統一和規範化。

  • 遷移專案路徑,保證路徑合規,同時做好備份和遷移。遷移後先安裝好依賴。
  • 專案路徑改了,nginx.conf root引數也要做相應的修改,更改為admin,ui等打包後的新的dist路徑。同時將以前的啟動埠修為7001,進一步規範化。
  • 專案MongoDB資料庫名稱也不是很合規,因此也需要將MongoDB相應進行備份/刪除等操作。
一、先遷移專案路徑並進行備份(由於需要規範化的資料夾已經存在。所以先將已有資料夾進行遷移備份):

1. 建立備份資料夾

mkdir backup

2. 遷移已存在的資料夾/檔案內容

[root@xxx~]# mv codebot /usr/local/code

將路徑 ~ 下的資料夾(目錄) codebot 移動到/usr/local/中並命名為重新命名為code,所以/usr/local/code資料夾(目錄)可以不存在

[root@xxx ~]# mv codebot/* /usr/local/code

將路徑 ~ 下的資料夾(目錄) codebot 下的所有內容移動到/usr/local/code目錄中,由於是直接移動code資料夾(目錄)的內容,所以/usr/local/code資料夾(目錄)必須需要存在

3. 建立規範化資料夾

mkdir codebot

4. 將現有專案目錄下的所有檔案內容和資料夾(目錄)拷貝到新建的規範化資料夾

需要注意需求是將專案目錄下的所有檔案內容和資料夾(目錄)都複製到新建的規範化資料夾,而不是將一個資料夾複製到另外一個資料夾中的業務場景;
這裡需要使用到-R引數,表示遞迴處理,將專案目錄下的所有檔案與子目錄一併遞迴處理;
這裡我使用的星號來表示資料夾中的所有檔案內容和資料夾(目錄),等待一會就複製成功了;
在複製時,Linux會將*星號作為所有檔案內容和資料夾(目錄),有時候會報以下錯誤:cp: cannot stat `/xxx/xxx/*': No such file or directory,這裡我沒有遇到,不再贅述;
*號方式複製錯誤時也可以使用點(.)代表所有檔案和資料夾進行遞迴複製。

[root@xxx ~]# cp -R /etc/codebot/* /home/codebot/

*號方式將路徑/etc/codebot下的所有檔案內容和資料夾(目錄)複製到/home/codebot/路徑中

[root@xxx ~]# cp -R /etc/codebot/. /home/codebot/

.號方式將路徑/etc/codebot下的所有檔案內容和資料夾(目錄)複製到/home/codebot/路徑中

二、備份目前專案MongoDB資料庫及已存在的規範化資料庫:

1. 進入伺服器mongo資料庫

mongo

2. 使用find命令查詢伺服器mongodb所在路徑,這一步最主要是方便把備份的MongoDB資料庫放置在這一路徑下,方便後續查詢

find / -name mongodb

從 / 根目錄下查詢資料夾名為 mongodb 的資料夾

當然後面跟上檔案字尾即為查詢檔案,例如:find / -name nginx.conf 從 / 根目錄下查詢檔名為 nginx.conf 的檔案

3. 使用mongodump命令進行資料庫備份(預設沒有資料庫密碼,直接備份,備份最後一層路徑建議為日期時間+資料庫名)

mongodump -h  127.0.0.1 --port  27017 -d xxxdatabase -o /xxx/xxx/20xx-x-xxdatabase

沒有資料庫密碼備份:mongodump -h 資料庫所在的ip(本地即為127.0.0.1) --port 埠號(預設為27017)-d 資料庫名稱 -o 匯出路徑
有資料庫密碼備份:mongodump -h 資料庫所在的ip(本地即為127.0.0.1) --port 埠號(預設為27017) -u 使用者名稱 -p 密碼 -d 資料庫名稱 -o 匯出路徑
備份好的資料庫為bson和json格式的檔案,儲存路徑即為:/xxx/xxx/20xx-x-xxdatabase/xxxdatabase

4. 刪除與標準化資料庫重名的資料庫,確保此前已經用mongodump進行了資料庫備份

show dbs

先檢視所有資料庫

use xxxdatabase

切換到刪除資料庫 xxxdatabase

db.dropDatabase()

執行刪除資料庫命令

show dbs

再檢視所有資料庫,xxxdatabase已經被刪除成功

5. 恢復備份資料庫

mongorestore -d xxxtestdatabase /xxx/xxx/20xx-x-xxdatabase/xxxdatabase

mongorestore -d 想要匯入的資料庫名稱 匯出路徑/資料庫名(記住後面要加之前所備份的資料庫的名字)

三、修改nginx.conf配置:

1. 使用whereis 命令查詢nginx.conf所在路徑

whereis nginx

查詢資料夾(目錄)名/檔案為nginx的所在路徑,我這裡查到是在/etc/ngin/下,專案的nginx.conf則在/etc/ngin/conf.d下

1. vim修改nginx.conf server的root引數,修改路徑為遷移後的專案dist路徑

server {
        listen       443;
        server_name  xxx.xxxx;
        root         /www/BUBG/codebotui/dist;
      ...省略

簡單寫一下server的引數,listen:監聽埠;
server_name:監聽地址,即為部署的域名;
root:伺服器專案前端VUE工程打包好的dist絕對路徑;
我這裡專案是npm run build/npm run build:prod進行編譯打包的,具體命令按照vue工程裡package.json檔案中scripts引數裡的編譯打包命令進行編譯dist。

2. vim修改nginx.conf server的location 引數的proxy_pass的啟動埠,統一修改7001,進行進一步規範化

 location /api/ {
            proxy_pass http://127.0.0.1:7001;
            proxy_connect_timeout 300;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
        }
#
        location /adi/ {
            proxy_pass http://127.0.0.1:7001;
            proxy_connect_timeout 300;
        ...省略

nginx.conf的引數和學習網上有很多教程和解釋,這裡不做過多贅述

3. 修改nginx後進行ngin.conf配置檢查

nginx -t

這條命令也可以檢視配置檔案 nginx.conf 的路徑

4. 檢查ngin.conf配置正確後進行nginx重啟

nginx -s reload
四、對伺服器專案進行重啟:

1. 停止

npm run stop

2. 啟動

npm run start
大功告成,流程寫詳細是為了自己加深印象,如果能幫助到其他人也是更好的。