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 # 殺死全部進程