系统版本: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
耗时较长)?