10分鐘搭建ubuntu+nodejs+pm2+nginx+mongodb+git+pm2自動部署環境

1.安裝nodejs

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

2.安裝pm2

npm install pm2 -g

3.安裝nginx

如果服務器已經安裝了apache需要先卸載掉,因爲apache佔用80端口會導致nginx無法啓動
依次執行以下命令

sudo service apache2 stop
update-rc.d -f apache2 remove
sudo apt-get remove apache2

更新包列表

sudo apt-get update

安裝

sudo apt-get install nginx

4.nginx添加虛擬機配置

cd /etc/nginx/conf.d

創建綁定域名的虛擬機配置文件,例如:你所綁定的域名是 fuck.baidu.net 項目所在的node端口是6661

vi fuck-baidu-net-6661.conf

將以下配置內容粘貼進去,根據實際情況自行修改

upstream wechat {
    server 127.0.0.1:6661;
}

server {
    listen 80;
    server_name wechat.bobbit.net;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;

        proxy_pass http://wechat;
        proxy_redirect off;
    }
}

重啓之前,可以先檢測一下配置規則

sudo nginx -t

執行上面的命令如果出現下面的提示

sudo: unable to resolve host XXX

則執行

vi /etc/hosts

修改 127.0.1.1 hostname 爲 127.0.1.1 XXX
重啓nginx

sudo nginx -s reload

5.安裝mongoDB

官網安裝說明 https://docs.mongodb.com/manu...
根據安裝說明執行完第一步。將第二步中的安裝源換成阿里雲的鏡像安裝會比較快,如下:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

將上面的部分替換如下

echo "deb [ arch=amd64,arm64 ] https://mirrors.aliyun.com/mongodb/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

更新源

sudo apt-get update

正式安裝

sudo apt-get install -y mongodb-org

常用命令

sudo service mongod start
sudo service mongod stop
sudo service mongod restart

6.本地和服務器使用ssh 公鑰 免密訪問git倉庫

在使用SSH協議訪問項目倉庫之前,需要先配置好賬戶/項目的SSH公鑰。本地和服務器均執行

你可以按如下命令來生成 sshkey:

ssh-keygen -t rsa -C "[email protected]"  

按照提示完成三次回車,即可生成 ssh key。通過查看 ~/.ssh/id_rsa.pub 文件內容,獲取到你的 public key

cat ~/.ssh/id_rsa.pub

將ssh key複製添加到git倉庫中 碼雲官方說明見這裏 https://gitee.com/help/articl...

測試是否成功
github

ssh -T [email protected]

碼雲

ssh -T [email protected]

7.本地環境免密訪問服務器

如果使用pm2的一鍵自動部署,需要先將本地生成的ssh key添加到服務器,在本地實現免密連接服務器的情況下纔可以使用pm2的一鍵自動部署,執行下面的命令來講ssh公鑰添加到服務器上

ssh-copy-id username@ip-address

按提示輸入服務器密碼,完成後會有如下提示

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

使用如下命令測試是否向服務器添加本地電腦生成的公鑰

ssh '[email protected]'

8.使用pm2在本地使用命令進行一鍵部署了

在本地終端執行下面的命令來進行第一次部署並填充遠程路徑

pm2 deploy production setup

每次本地git提交代碼後在本地終端執行下面的名來實現自動拉取git倉庫中的代碼並部署

pm2 deploy production

9.將當前pm2進程設置爲開機自啓動

pm2 startup
pm2 save

pm2常用的命令

$ pm2 list               # 顯示所有進程狀態
$ pm2 monit              # 監視所有進程
$ pm2 logs               # 顯示所有進程日誌
$ pm2 stop all           # 停止所有進程
$ pm2 restart all        # 重啓所有進程
$ pm2 reload all         # 0 秒停機重載進程 (用於 NETWORKED 進程)
$ pm2 stop 0             # 停止指定的進程
$ pm2 restart 0          # 重啓指定的進程
$ pm2 startup            # 產生 init 腳本 保持進程活着
$ pm2 web                # 運行健壯的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0           # 殺死指定的進程
$ pm2 delete all         # 殺死全部進程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章