项目上线基本流程

1. 租ECS云服务器

服务器推荐顺序:

  • 阿里云
  • 腾讯云
  • 华为云

一般选择1核2G即可,选择按使用量计费。

通过命令ssh root@xx.xxx.xxx.xxx #(公网ip),然后输入购买服务器时设置的密码即可连接到服务器。之前如果没生成过公钥的,需要先在本地使用命令ssh-keygen一路回车生成公钥再登录。

如果是重置过服务器,那么之前就会有记录,重新登录时会报错,此时需要在文件中将该服务器的配置删掉再登录。

vim .ssh/known_hosts # 进入后删除该服务器的配置

2. 配置服务器

CentOs创建用户(默认的root权限过高,需要使用拥有sudo权限的用户进行操作)

useradd acs # acs 为自己想取的用户名
passwd acs
# 设置密码
chmod -v u+w /etc/sudoers # 给 sudoers 文件可写权限
vim /etc/sudoers # 修改该文件,给用户 acs 添加权限
# 进入后先输入 /Allow root 找到 root    ALL=(ALL)    ALL 所在位置
# i 进入编辑模式,在 root    ALL=(ALL)    ALL 下一行写入 acs    ALL=(ALL)    ALL
# 按ESC 然后输入 :wq 保存并退出 
chmod -v u-w /etc/sudoers # 收回 sudoers 文件可写权限
su acs # 使用新账户登录系统

image.png
然后exit退出,在本地配置免密登录:

vim .ssh/config # 没有该文件会自动创建

在文件中添加如下语句

Host springboot_server # 后面这个是给服务器取的名字
  	HostName xx.xxx.xxx.xxx # 后面这个是公网ip
    User acs # 后面这个是刚刚添加的用户名

保存并退出

在终端中输入ssh-copy-id springboot_server然后输入密码完成免密登录配置,之后就可以使用使用ssh springboot_server直接登录,而不需要输入密码。

然后我们先不登录,先将一些祖传配置文件传过去。

使用scp xxx springboot_server:将需要的文件传到服务器(没有就不传),注意一定要有冒号:

scp .bashrc .vimrc .tmux.conf server_name:  # server_name需要换成自己配置的别名

然后登录服务器

先装一个tmux(所有工作尽量在tmux中完成,避免发生意外丢失工作进度)

sudo yum update # 先更新数据源,网络不好可能会报错,尽量在网络环境良好时操作
sudo yum install tmux

3. 安装docker

然后在tmux中安装dockerdocker安装步骤(官网)

安装完成后输入docker会有一些提示,说明安装成功!

然后启动dockersudo systemctl start docker

安装成功之后,将用户在docker中赋予sudo权限:sudo usermod -aG docker $USER,以便该用户可以使用 docker 而无需使用 sudo。之后需要退出重新登录才会生效,否则执行docker相关命令会提示没有权限。

之后就可以使用scp命令把自己的镜像传到服务器了

然后使用命令docker load -i django_lesson_1_0.tar将镜像文件解压到docker中。

运行镜像:

# 中间是需要使用的端口号映射配置,例如 -p 20000:22 会将在外界访问服务器20000端口时自动映射到容器的22端口
docker run -p 20000:22 -p 443:443 -p 80:80 -p 3000:3000 -p 3001:3001 -p 3002:3002 -itd --name kob_server django_lesson:1.0

然后就可以进到docker中了:docker attach kob_server(镜像是ubuntu

之后给创建用户并赋予sudo权限,再按ctrl + p, strl + q挂载容器(退出但不销毁)。

同样的,可以将将祖传的配置文件传到容器中

4. 容器中安装各种服务

然后在容器中安装mysql

sudo apt-get install mysql-server
sudo apt-get update
sudo apt-get install mysql-server	

然后启动mysqlsudo service mysql start

进入mysqlmysql -uroot -pxxxxx

mysql中执行sql语句:ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';以修改密码。

创建数据库并创建表:

create database kob;
use kob;
source /home/acs/create_table.sql; # 提前准备好的创建数据库表的sql文件
exit;

安装java

sudo apt-get install openjdk-8-jdk

5. 打包项目到容器中

然后就是将项目打包传到容器中运行了

后端项目先cleanpackage即可。

前端项目修改请求地址运行npm run build

将后端项目的jar包分别发送到容器中运行

java -jar xxx.jar # 运行

需要停止的话

ps -ef | grep xxx.jar # 查询程序的进程号
kill -s 9 xxxx # 后面是查询到的进程号

6. 配置许可证以及nginx等

配置key, pem, nginx.conf

在这之前先将配置文件复制到root目录下(为了使配置nginx.conf时文件格式好看点)
sudo cp .bashrc .vimrc .tmux.conf /root

具体的域名、许可证、证书申请及nginx配置可参考其他文章。

最后启动nginx

sudo /etc/init.d/nginx start # 如果运行结果是fail的话需要查看错误日志对应修改

结束。

题外话: 需要在本地连接容器中的数据库,可以参考Navicat 连接远程服务器里 docker 中的 mysql

才疏学浅,有问题请指正。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值