前传
由于SpringBoot
框架课的项目需要上线部署到云端,并且需要赋予域名,需要租一台云服务器,祖云服务器以及选择云服务器的过程可以查看下面的链接:
云服务器的选择与配置过程传送门
在购买完服务器之后,接下来就需要配置服务器了,如何配置服务器,方法如下:
正式配置服务器
首先在刚刚购买完服务器之后,在Terminal
里可以尝试登录一下:
ssh 用户名@IP
输入密码之后,如果能够登录成功则说明购买成功
一.配置一下这个服务器
在这事先声明,本人所使用的服务器为华为云,由y总的几个讲义来看,华为云、腾讯云、阿里云,基本的配置流程大致是相同的,只是在细节上有出入,接下来以华为云嗯对配置方法举例,如果后续再买到其他云的时候,再来更新
因为如果使用root
根用户配置服务器的话,权限太高可能导致误操作从而导致文件删除,因此首先未来在操纵服务器的时候不要在根用户下操作。就需要首先先添加一个用户。
1.创建一个非root
用户
创建命令为:
adduser 用户名
接下来输入密码,输入密码之后一直按回车,即可
接下来,给新建的用户添加一个sudo
权限
usermod -aG sudo acs
2.将常用的配置传入服务器
常用的配置三件套:
.bashrc 。vimrc .tmux.conf
再添加这些常用的配置之前,首先先配置免密登录
2.1 配置免密登录
在配置免密登录之前,首先先配置一个别名,以防止IP太长记不住
配置别名的位置在ssh
下的config
文件
写内容格式为:
Host 服务器别名/域名
HostName:IP地址
User:自己的用户名
比如写为:
Host:springboot
HostNameL:120,46.201.37
User:acs
然后输入以下命令配置免密登录:
ssh-copy-id 服务器别名
输入刚刚给用户设置的密码
这样就配好了免密登录。
登录到服务器,将这三个文件传进服务器
2.2将文件传进服务器
输入下面命名:
scp. bashrc .vimrc .tmux.config springboot_server:
注意:一定要记得加上最后那一个:
3.去服务器里装一下tmux
与docker
首先先更新下apt
sudo apt-get update
接下来安装tmux
sudo apt-get install tmux
至此云服务器基本配置完成。
3.1 安装docker
容器
在安装docker
的时候,时间程序会比较长,因此最好是在tmux
里装,这样在即使退出掉Terminal
之后,依旧不会断掉。
docker
的安装有相关的教程,在docker的官网
docker官方文档传送门
去docker
教程里去按照步骤复制,在复制完之后,输入:
sudo apt-get update
对代码进行更新。之后输入dokcer
,如果能够弹出东西,像下图所示,那么说明安装成功
4.配置docker
首先先配置一下docker
的sudo
权限
输入下面命令;
sudo usermod -aG docker $USER
检验的命令为docker images
退出服务器后,再输入这个命令,出现下面的内容,就说明拥有了sudo
权限
问题:再多次输入命令,甚至是重新配置了docker
之后发现依旧没有sudo
权限。
解决方法参考链接1
解决方法参考链接2
解决的方法大体为:可能有占用正在运行的tmux
,因此先把tmux
杀掉,然后输入docker ps
/docker images
,以解决问题。
4.1 安装镜像
在之前的django
与Linux
基础课上存在AC Terminal
里有相关的镜像,可以直接拿过来用。
下一步就是在ssh文件夹下的config
文件,配置本地终端的免密登录
首先先给本地终端生成一个ssh
密钥(如果有的话就不用生成)
然后创建一个文件config
在里面输入上面配置免密登录时的内容。
最后输入
ssh-copy-id springboot_server
配置完免密登录之后,接下来,把docker
镜像解压出来。
解压的命令为
docker load -i
整个的解压的过程中需要一段时间
小贴士:最好不要一台服务器上两个项目,原因的瓶颈不在服务器上。
因为未来项目做大了之后,一个服务器都跑不起来。
所以根本不会出现一个服务器因为自己项目多而不够用
而且,同一个服务器,80端口都是一样的,因此不同的项目在同一个服务器还需要做特殊处理,很麻烦
4.2 把docker
跑起来
要想让docker
跑起来,需要用到一些端口映射
用到的端口有:
20000:容器用ssh
端口登录的端口
(22端口被服务器本身占用)
443:https
三个微服务的端口:
3000、3001、3002
给容器取一个名字:kob_server
输入如下命令
docker run -p 20000:22 -p 443:443 80:80 -p 3000:3000 -p 3001:3001 -p 3002:3002 -itd --name kob_server django_lesson:1.0
这样容器就创建好了,出现下图则说明运行成功
输入下面的命令进入到docker
容器中
docker attach kob_server
进来之后,把刚刚创建用户时给用户赋予权限等等操作再重复的做一遍。
4.3 配置docker
容器
输入下面的命令,首先先创建容器中的用户:
adduser acs
usermod -acs sudo acs
接下来,就是把容器挂载,挂载容器用ctrl+P
与ctrl+q
,输入ctrl+d
关闭容器
然后去云平台,将用到的端口都打开
22打开:否则ssh登录不上
20000打开:是负责容器的登录
443打开:https协议
80:http协议
3000、3001、3002是在服务器内部访问,在外面不要打开。
华为云的安全组配置在哪呢:
位置如上图所示。华为云的服务器的默认的安全组只有一个
Sys-WebServer
在华为云的服务器里打开一个端口的方法为:
4.4 配置容器的免密登录\
打开容器的.ssh/config
添加一个新的表名:
Host:Springboot
HostName:IP与服务器的一样
User:与服务器的用户名一致
Port:200000
接下来配置容器免密登录
在这可以简单的解释下:容器:服务器中创建的一个虚拟服务器
ssh-copy-id: springboot
如果在重新运行的时候出现Bad Configuration
一般是自己的Config有地方写错了,比如说:port
写成了post
接下来在本地也要配置下容器(服务器中的虚拟操作)
在vim中添加服务器里一样的配置内容,然后同样再次输入命令配置免密登录。
服务器为何要与本地同步、
云端的作用;课上的很多配置位于AC Termina中
本地:文件项目在本地
因此云端与本地需要进行同步
5.配置mysql
在配置mysql
之前,首先需要补啊.bashrc .vimrc .tmux.conf
传给容器
再给容器添加完配置之后,接下来,就是在本地去运行了。
首先先安装一下mysql
sudo apt-get install mysql0server
然后执行更新
sudo apt-get update
然后再安装一遍mysql
这样,mysql
就安装完成了,下一步启动mysql
sudo serivce mysql start
检验:输入top
如果能够看到mysqld
与mysqld_safe
则说明登陆成功
5.1设置mysql
首先先连接登录下mysql
sudo mysql -uroot
在进来的时候首先先设置下密码:
ALTER USER 'root'@'localhost' INDENTIFIED WITH caching_sha2_password BY '要设置的密码'
再次登录进去,查看数据库,初始的状态下,项目数据库kob是不会随着后端项目所迁移的
因此就需要先创建。
在创建完数据库之后,同理会发现也没有表。
那么就需要把这三个表从本地后端传上云端。
5.2 在云端重新创建表
由于表是在idea
中的图形化界面创建的,找到相关命令的方式为:在idea右键->sql脚本->将DDL复制到剪切板
然后在云端创建文件。
vim crerate_table.sql
既然怒粘贴模式,把这三个表的SQL
语句都粘贴进来。
在mysql
中输入这个脚本
source /home/acs/文件名
6.安装Java8
安装Java8的命令为:
sudo apt-get install openjdk-8-jdk
检验是否安装成功,输入:
Java-version
如果能够看到版本呢号,则说明安装成功。