系統版本:ubuntu~16.04.10html
- 環境配置完畢,部署基本完成
- 若是環境不一致?重複部署?由Docker來解決
# 更新 sudo apt-get update 複製代碼
# 基本工具安裝 sudo apt-get install vim openssl build-essential libssl-dev wget curl git 複製代碼
若是所有由Docker管理,能夠跳過安裝node
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash # 查看(若是沒法查看先退出再從新登入) # 版本 nvm --version # 遠程倉庫版本 nvm ls-remote # 查看全部版本 nvm ls # 安裝版本 nvm install v12.13.1 # 使用此版本 nvm use v12.13.1 # 查看node與npm版本 node --version npm --version 複製代碼
sudo node --version,sudo npm --version
sudo: npm: command not found
sudo: node: command not found
解決方式,軟鏈接linux
which node # /root/.nvm/versions/node/v12.13.1/bin/node which npm # /root/.nvm/versions/node/v12.13.1/bin/npm sudo ln -s "/root/.nvm/versions/node/v12.13.1/bin/node" "/usr/local/bin/node" sudo ln -s "/root/.nvm/versions/node/v12.13.1/bin/npm" "/usr/local/bin/npm" # 再次查看便可正確返回 sudo npm --version # 若是切換node版本,要先刪除/usr/local/bin/node,/usr/local/bin/npm rm -rf /usr/local/bin/node rm -rf /usr/local/bin/npm # 再執行上面的軟鏈接 複製代碼
若是所有由Docker管理,能夠跳過安裝nginx
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' sudo apt update sudo apt install yarn # 查看yarn yarn --version # 移除yarn及其依賴 sudo apt purge yarn # 刪除yarn源 sudo rm /etc/apt/sources.list.d/yarn.list 複製代碼
若是所有由Docker管理,能夠跳過安裝git
# npm # npm --registry=https://registry.npm.taobao.org install -g pm2 # yarn # yarn config set registry https://registry.npm.taobao.org yarn global add pm2 # 查看版本 pm2 --version 複製代碼
nginx 默認 80 端口,負責端口轉發github
# 更新 sudo apt-get update # 安裝 nginx sudo apt-get install nginx # 根據業務編寫nginx.conf cd /etc/nginx/conf.d/ vi test.conf # 如下爲nginx經常使用命令 # 檢測nginx文件 nginx -t # 啓動nginx服務 systemctl start nginx.service # 中止nginx服務 systemctl stop nginx.service # 重啓nginx服務 systemctl restart nginx.service # 從新讀取nginx配置(這個最經常使用, 不用中止nginx服務就能使修改的配置生效) systemctl reload nginx.service 複製代碼
config 修改web
# 優化 # 隱藏版本號`Response Headers` -> `Server: nginx/1.10.3 (Ubuntu)` -> `Server: nginx` # vi /etc/nginx/nginx.conf # 去掉註釋 server_tokens off; 複製代碼
若是所有由Docker管理,能夠跳過安裝mongodb
從 Ubuntu Repository 安裝 MongoDBdocker
# 更新 sudo apt update && sudo apt upgrade -y # 安裝 sudo apt install mongodb # 查看狀態 systemctl status mongodb # mongodb配置文件查看 # mongodb.service - An object/document-oriented database # Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) # Active: active (running) since Mon 2019-12-02 16:06:36 CST; 18s ago # Docs: man:mongod(1) # Main PID: 32418 (mongod) # CGroup: /system.slice/mongodb.service # └─32418 /usr/bin/mongod --config /etc/mongodb.conf cat /etc/mongodb.conf # 可知道默認數據和log存放地址,方便往後定時清理日誌 # # Where to store the data. # dbpath=/var/lib/mongodb # #where to log # logpath=/var/log/mongodb/mongodb.log # mongodb經常使用命令以下 systemctl status mongodb systemctl stop mongodb systemctl start mongodb systemctl restart mongodb # 卸載MongoDB systemctl stop mongodb apt purge mongodb apt autoremove # 完全卸載刪除mongodb # 嘗試使用 dpkg 搜索已經安裝的mongo軟件包 sudo dpkg -l | grep mongo # remove sudo apt-get remove mongodb* --purge # 刪除數據庫和日誌文件 sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb 複製代碼
須要 robot3T 遠程鏈接shell
# 修改mongodb配置文件 systemctl status mongodb # 查看狀態 vi /etc/mongodb.conf # 修改配置 # 端口和ip修改 # 127.0.0.1=>0.0.0.0 # port=>27017 複製代碼
基本的安全意識是要有的
mongodb
默認監聽端口 27017
,人盡皆知,因此很不安全,容易被勒索,基本的防禦措施咱們仍是須要處理的
設置用戶名密碼和數據庫的訪問權限
# 建立超級管理員 mongo # 進入mongo shell show dbs # 顯示全部數據庫 use admin # 進入admin數據庫 # 建立一個用戶,身份是超級管理員 db.createUser({user:"root",pwd:"123456",roles:[{role:'root',db:'admin'}]}) # 退出mongo shell 再次進入,權限測試,返回1說明登陸成功 use admin db.auth("root","123456") # 爲別的數據庫建立用戶 use admin # 建立用戶,用戶 wang 對數據庫test的權限爲讀寫 db.createUser({user:"wang",pwd:"123456",roles:[{ role: "readWrite", db: "test" }]}) # auth認證 db.auth("test-user","123456") # 操做對應數據庫 use test db.test.save({name:'老王',age:18}) # 查看全部用戶 use admin db.system.users.find({}) 複製代碼
默認狀況下 MongoDB 是不開啓用戶認證的。若是咱們添加用戶,那麼須要開啓用戶認證機制。經過修改 mongodb.conf 配置文件(/etc/mongodb.conf
),在文件中解開 auth=true
便可
# bind_ip = 127.0.0.1 # 遠程訪問 bind_ip = 0.0.0.0 port = 27017 # Turn on/off security. Off is currently the default # noauth = true auth = true 複製代碼
而後重啓 MongoDB 服務
# 進入mongodb shell mongo show dbs # 會報錯,由於權限已設置 # 登陸認證=> db.auth('user','pwd') use admin # 返回 1 說明認證成功 db.auth('root','123456') 複製代碼
此類工具填寫帳戶名和密碼可鏈接訪問
注意防火牆或安全組已經打開(27017 端口),且 ip 修改成(0.0.0.0)
以上就完成了基本環境搭建,若是你想用Docker,接着往下走
若是所有以 Docker 方式部署應用
node, mongo, pm2
等均可沒必要安裝
sudo apt-get update
複製代碼
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
複製代碼
# 添加 Docker 官方的 GPG 密鑰(爲了確認所下載軟件包的合法性,須要添加軟件源的 GPG 密鑰) curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 網絡問題可使用國內鏡像 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - 複製代碼
# 設置穩定版本的apt倉庫地址 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 國內地址 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" 複製代碼
sudo apt-get update
複製代碼
# 具體版本安裝 sudo apt-get install docker-ce=<VERSION> sudo apt-get install docker-ce 複製代碼
docker --version
複製代碼
因爲鏡像服務可能出現宕機,建議同時配置多個鏡像
# 修改配置文件的方法,配置文件若是不存在則新建 vi /etc/docker/daemon.json # 寫入以下內容 { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] } 複製代碼
sudo systemctl daemon-reload
sudo systemctl restart docker
複製代碼
# 設置開機啓動 sudo systemctl enable docker sudo systemctl start docker # 查看docker服務是否啓動 systemctl status docker # 啓動docker服務 sudo systemctl start docker # 關閉docker服務 sudo systemctl stop docker # 查看容器啓動列表 docker ps -a # 查看容器列表 docker images -a # 查看默認配置 cat /etc/systemd/system/multi-user.target.wants/docker.service # 運行狀態查看 docker stats docker stats -a 複製代碼
至此就能夠用docker管理應用了
可是很明顯的弊端就是手動管理不宜構建不易維護,此時docker-compose
又能夠助你一臂之力
是一個快速編排Docker服務的工具
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 複製代碼
sudo chmod +x /usr/local/bin/docker-compose 複製代碼
docker-compose --version
複製代碼
curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
複製代碼
基本環境搭建完成,Centos 與 Ubuntu 部署方式基本一致
run
起的鏡像,也有docker-compose up
起的鏡像,它們之間又如何連接?build
耗時較長)?