购买域名与服务器
购买域名: 阿里云 腾讯云等网站 注意域名如果是大陆的服务器需要备案
购买服务器:
购买后可进行远程连接 也可在xshell面板进行操作 操作命令 ssh root@ip地址
注意 linux 常见命令 ls 获取列表文件 pwd 当前的文件夹 cd 改变路径 cd ~ 进入个人文件夹
exit 退出 ll是获取某文件夹的所有文件 mkdir 创建文件夹
域名解析
把服务器的ip地址映射到对应的域名 后期可通过域名访问 本质上是访问IP地址
注意域名解析中 A记录代表指向的是IP地址 CNAME代表指向另一个域名
Nginx安装与配置(web服务器)
公网云服务器开启的状态下在面板中 先apt update 更新软件包后再使用 apt show nginx 查看是否有nginx数据 接着 apt install nginx -y 安装包(针对Ubuntu系统采用的安装方式) 如果是(centOS采用 yum install -y)
如果安装好后打不开 需要在购买的地方 阿里云或者其他的 配置实例的安全组 端口80
成功的图片
MongoDB数据库安装与配置
与Nginx类似 apt show mongodb-server 查看版本信息 接着 安装 apt install mongodb-server -y
用mongo进入数据库 show dbs 显示数据库
git安装与配置ssh-key
安装 apt install -y git 接着生成ssh-key 采用ssh-keygen 命令
cat 目录地址 可以获取生成的ssh-key内容 并把它放到gitHub的部署公钥中
nodejs安装与配置淘宝镜像
安装 apt install nodejs -y node-v 查看node版本 版本太低需要提升版本 安装 npm install -y n
用来提升node版本 输入n 可查看node的版本 n use latest 改变为最新版本
同时 安装 apt install npm -y npm配置淘宝镜像 npm config set registry https://registry.npm.taobao.or 提升npm下载速度
拉取代码,安装pm2 并启动项目
先把本地代码上传到gitlab或github 接着把之前服务器生成的key 放到 gitlab的部署公钥中 完成之后就可以在服务器上拉取本地代码 在服务器上找到一个位置存放文件 并使用git clone 地址 克隆并安装相对应的依赖npm i
安装好后启动node项目 node app.js 启动会导致终端被占用并且使用ctrl+c就停用了 所以利用pm2启动项目 能在后台运行 安装pm2 npm install -g pm2 启动 pm2 start app.js
配置Nginx反向代理(通过nginx服务器去查找对应的node的服务器运行)
配置Nginx文件在云服务器面板比较复杂 可以利用vscode 下载插件 remote-ssh(管理远程文件) 结合nginxconfig.io
npm下载到本地运行 或者线上地址GitHub - digitalocean/nginxconfig.io: ⚙️ NGINX config generator on steroids 💉DigitalOcean | The Cloud for BuildersGitHub - digitalocean/nginxconfig.io: ⚙️ NGINX config generator on steroids 💉 进行可视化配置nginx文件
进入之后 nginx文件夹如下图
利用如下图帮我创建自己的nginx文件
设置好后下载配置获取文件 并复制到vscode远程nginx文件替换
之后重启 如下命令
service nginx reload (命令是重载nginx配置文件)
迁移本地数据到服务器mongodump
先导出数据 mongdump -d 数据库名称 导出后会创建一个文件夹 并把它复制到云服务器root文件夹里
然后 执行mongorestore 恢复
注意事项:
后期修改本地代码后需要提交到github 并在云服务器里的存放本地代码的地方 git pull
拉取 并执行 pm2 reload 文件名 重新加载执行node服务
pm2 list 命令是查看进程的
Robo3T 是可视化的操作数据库的软件
补充
SSL证书启用HTTPS安全连接
lets-encrypt Certbot提供免费的SSL
利用阿里云OSS云存储 存储上传文件 (存储到另一个公共的服务器)
node 下载如下安装包 multer-aliyun-oss - npm
接着获取相应参数的值
需要登录阿里云 找到对象存储进行相应配置
创建bucket(存储空间)
个人中心创建子用户