博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器部署过程(node相关)
阅读量:6073 次
发布时间:2019-06-20

本文共 4297 字,大约阅读时间需要 14 分钟。

服务器部署过程

步骤

  1. 购买自己的域名
  2. 域名备案
  3. 购买服务器
  4. 配置服务器应用环境
  5. 项目远程部署和发布与更新

购买域名

云主机

备案

登录服务器(以阿里云为例子)

连接服务器

ssh root@60.205.231.190复制代码

ssh无密码登录

  1. 在自己的电脑上生成私钥和公钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"//-t 指定是rsa算法//-b 指定公钥和私钥的大小,这里是四个字节,越大安全,性能也就越差//-C 指定邮箱//会在~/.ssh目录下面生成id_rsa和id_rsa.pub文件,公钥可以给别人,但是私钥一定不能给别人复制代码
  1. ssh加密解密比较慢,客户端可以开启ssh代理,加快速度
eval "$(ssh-agent -s)"ssh-add ~/.ssh/id_rsa复制代码
  1. 服务器配置
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"eval "$(ssh-agent -s)"//开启ssh代理服务,加快解密速度ssh-add ~/.ssh/id_rsa复制代码
  1. 把本地的公钥上传到服务器授权文件中
//1. 在服务器.ssh目录下新建授权文件vi ~/.ssh/authorized_keys//2. 将本地的公钥id_rsa.pub文件内容拷贝到服务器授权文件中复制代码
  1. 执行完以上步骤,在执行以下ssh登录就不需要密码登录了
ssh root@60.205.231.190复制代码

增加ssh连接服务器安全等级

  1. 修改/etc/ssh/sshd_config 这个文件
vi /etc/ssh/sshd_config// Port 2222 默认ssh的默认端口是22,我们将他改成2222//PermitRootLogin yes 默认为yes,改为no, 用户就不能以root用户登录了//PasswordAuthentication yes 默认为yes, 可以密码登录,改为no, 用户就不能以密码登录了,只能以公钥和私钥的形式登录复制代码
  1. 重启ssh
systemctl restart sshd.service复制代码
  1. 此时再以22端口登录的话就报错了
ssh: connect to host 60.205.231.190 port 22: Connection refused复制代码
  1. 正确的登录方式
ssh -p 2222 root@60.205.231.190复制代码

安装部署需要的其他软件

yum install wget curl git复制代码

安装node

//1. 安装nvmwget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash//2. 安装node指定版本nvm install 8.11.3//3. 使用指定版本nvm use 8.11.3//4. 查看node版本node -v//5. 用cnpm替换npm提高下载模块速度npm i cnpm -g复制代码

编写node程序

vi ~/node/demo.js...const http = require('http');const hostname='60.205.231.190';const port = 3000;const server = http.createServer((req, res) => {  res.statusCode = 200;  res.setHeader('Content-type', 'text/plain');  res.end('hello world');})server.listen(port, hostname, ()=>{  console.log(`Server running at http://${hostname}:${port}`);})...node demo.js//地址栏输入http://60.205.231.190:3000/程序既可跑起来了复制代码

安装pm2

//全局安装npm install pm2 -g//启动一个项目pm2 start app.js --name 'demo'//查看这个项目的详细信息pm2 show demo//删除该项目pm2 delete demo//查看pm2当前启动的项目pm2 list复制代码

安装nginx

  1. 安装
//安装nginx依赖环境yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -ycd ~ && mkdir source && cd sourcewget http://nginx.org/download/nginx-1.12.0.tar.gztar zxvf nginx-1.12.0.tar.gzcd nginx-1.12.0//生成makefile文件./configuremake && make install复制代码
  1. 将nginx添加到环境变量
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx复制代码

ps: 上面语法是为nginx创建一个软连接, 具体语法是ln -s 源文件 目标文件,要写成绝对路径

  1. nginx 相关命令
//启动nginx //检查nginx配置是否错误nginx -t//重启nginxnginx -s reload//关闭nginxnginx -s stop复制代码

安装mysql

cd ~/sourcewget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpmyum repolist all | grep mysqlsudo yum install mysql-community-server -y//开启mysql服务sudo systemctl start mysqld.service//查看mysql服务状态sudo systemctl status mysqld.service//查看mysql临时登录密码sudo grep 'temporary password' /var/log/mysqld.logmysql -uroot -p + 临时的密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin!888';//开启远程连接use mysql;select Host, User from user;//第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,BY后面的字符串表示密码).表示任何数据库都可以被访问 %表示任意的ip都可以访问,这句话的意思表示允许数据库被任何主机以root用户以Credan!888(远程连接的密码,不是本地访问的密码)密码进行访问GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin!888' WITH GRANT OPTION;//刷新授权flush privileges;复制代码

安装mongod

安装

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz tar -zxvf mongodb-linux-x86_64-3.0.6.tgz  mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb //添加到环境变量,加入到~/.bash_profile文件里面export PATH=/usr/local/mongodb/bin:$PATH source ~/.bash_profile mkdir -p /data/db复制代码

以守护进程的方式运行

  1. 在/usr/local/mongodb下面新建mongod.conf
port= 27017fork=truemaster=truelogpath=/data/mongo/27017/mongo.loglogappend=truedbpath=/data/db#auth=true #是否开启授权复制代码

ps: 一定要提前把所需要的文件建好 2. 执行mongod -f /usr/local/mongodb/mongod.conf运行

设置密码

  1. show dbs 新版Mongodb没有admin数据库,但是不妨碍下面的操作
  2. use admin 进入admin数据库
  3. db.createUser({user:"admin", pwd:"admin888", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
    • 改命令是创建是管理员账号
    • mongodb中的身份是基于roles的, user是用户名,pwd是用户民对应的密码,userAdminAnyDatabase表示该用户可以操作任何数据库
  4. db.auth("credan", "Credan!88") 验证用户是否添加成功,返回1表示添加成功
  5. 修改上面mongod.conf配置文件 将auth=true打开,并且重启mongod
  6. 用上面创建好的admin账号,创建其他账号
    • use admin
    • db.auth("admin", "admin888")
    • use yourdatabase
    • db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
  7. 本地通过robo 3T 链接服务器mongo

转载于:https://juejin.im/post/5b91efd2e51d450e7762896a

你可能感兴趣的文章
15款最好的网站音乐播放器
查看>>
应用程序的混淆
查看>>
Java继承总结
查看>>
2. Getting Started
查看>>
iOS 类别和扩展(Categories和Extensions)
查看>>
apache poi 读取xlsx并导出为json(没考虑xls)
查看>>
CUDA和TensorFlow的版本匹配问题
查看>>
Sharepoint server 2016自定义作业不能部署
查看>>
JS学习专辑外传(1)
查看>>
django基础知识 ~ choice
查看>>
pypi 国内镜像 及修改全局方法
查看>>
asp.net关于Page_Load方法和执行js脚本顺序的不同所带来的问题
查看>>
《剩女郎》的艺术魅力
查看>>
OpenCV4Android
查看>>
16秋进度条9
查看>>
SocketServer
查看>>
生物信息学数据库--介绍
查看>>
使用Nodejs获取博客园博客数据并处理转发
查看>>
[05]表格元素
查看>>
[MongoDB教程] 1.简介
查看>>