前言:
- 此文章所涵盖的教程:
- 阿里云服务器的购买
- 安装Xshell 、 Xftp
- 安装Nginx
- 使用Nginx
- 安装 jdk
- 运行 springboot 项目
- 安装 Docker
- 将 springboot 项目打包成 Docker 镜像
- 安装 MySQL
环境准备
准备一台云服务器
- 使用下面的链接购买云服务器
- 如果是新用户可以试用三个月
- 如果是大学生,可以免费领取300元无门槛优惠券
Tip:在选择操作系统时,建议选择 Linux ,因为它所占用的资源更少
准备远程连接的软件
- Xshell 7:主要用于连接控制服务器
- Xftp 7:主要用于本机和远程服务器之间的文件传输
- 下载链接:家庭/学校免费 - NetSarang Website (xshell.com)
使用教程:以Xshell为例,Xftp 与之类似
-
点击新建
-
连接云服务器
-
启动
-
终端出现类似以下代码,说明成功了
Connecting to 你的公网ip
Connection established.
To escape to local shell, press Ctrl+Alt+].
WARNING! The remote SSH server rejected X11 forwarding request.
Welcome to Alibaba Cloud Elastic Compute Service !
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Fri Nov 17 19:21:18 2023 from 111.31.58.28
开始搭建网站
在云服务器上安装启动 Nginx
- 打开 Xshell 并连接 云服务器
- 下载Nginx
yum install nginx
- 启动 Nginx,默认占用80端口
sudo systemctl start nginx
- 修改安全组,配置规则:云服务器管理控制台 (aliyun.com)
- 在浏览器输入公网ip,测试是否成功,只要不是404,基本上就成功了
将网站资源拷贝到服务器
- 打开 Xftp 并连接 云服务器
- 拷贝
如果只是搭建一个静态资源网站,到此基本上就结束了
搭建后台服务器:SpringBoot项目
在云服务器上安装 JDk8
一、上传 jdk8 到云服务器
- 下载 Linux 版本的 jdk8:JDK8下载,提取码qian
- 使用 Xftp 上传文件到云服务器
二、安装并配置 jdk8
- 使用 Xshell 解压 JDK8
cd /home/java # 切换目录
tar -xvf jdk-8u171-linux-x64.tar.gz # 解压文件
ls # 查看解压文件
- 配置环境变量
vi /etc/profile
- 在文件末尾加上 jdk 配置:
unset i
unset -f pathmunge
export JAVA_HOME=/home/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:
export PATH=${JAVA_HOME}/bin:$PATH
i 1、进入编辑模式
esc 2、退出编辑模式
:wq! 3、退出保存
- 刷新配置文件,让配置生效:
source /etc/profile
- 验证是否安装成功
java -version
以 jar 包形式将 Spring Boot 项目部署到云服务器
-
通过 idea 打包项目
-
项目上传到服务器
-
在服务器运行 jar 文件
cd /media # 切换到jar所在的目录
java -jar spring_tallybook.jar # 前台执行,窗口关闭运行就结束了
nohup java -jar spring_tallybook.jar > /media/log.txt & # 后台启动
# 代码解释:
# nohup --> 不挂断地运行
# >/media/log.txt 将命令行中输出的内容,写入到 log.text 中
# & 自动运行
-
修改安全组,配置规则:云服务器管理控制台 (aliyun.com)
-
浏览器访问
注意和在本地电脑运行相比,只需将 ip 地址换成服务器的即可,端口号(默认8080)和路径名都是与本地一致,也可自行配置
将应用以 Docker 镜像文件形式部署至服务器
安装 Docker
- 安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 创建docker.service文件 (否则会启动失败)
cd /etc/systemd/system/ # 切换目录
touch docker.service # 创建文件
vim docker.service # 编辑
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
# 此处的–insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝。
- 启动docker
chmod +x /etc/systemd/system/docker.service # 给docker.service文件添加执行权限
systemctl daemon-reload # 重新加载配置文件(每次有修改都要重新加载)
systemctl enable docker.service # 设置开机启动
systemctl start docker # 启动
systemctl status docker # 查看docker服务状态
service docker stop
将 SpringBoot 项目打包成 Docker 镜像
- 新建 Dockerfile 文件
cd /media/ # 切换目录
touch Dockerfile # 创建文件
- 编辑 Dockerfile 文件
vim Dockerfiler
# java8运行环境
# Docker官方已弃用 FROM java
FROM openjdk:8
# 作者名称
MAINTAINER QiaNuo
# 切换工作目录
WORKDIR /media
# 添加rundemo.jar文件到docker环境内
ADD spring_tallybook.jar /media/
# 暴露端口8080
EXPOSE 8080
# 运行命令
ENTRYPOINT ["java", "-server", "-Xms512m", "-Xmx512m", "-jar", "/media/spring_tallybook.jar"]
- 构建镜像
# 后边一个“.”,代表当前路径
docker build -t spring_tallybook:0.0.1 .
- 查看镜像是否创建成功
docker images
- 运行镜像并检验
docker run -p 8080:8080 -t spring_tallybook:0.0.1
- 挂载后台不间断运行
docker run -d -p 8088:8088 -t lubanworkshop-spring
- Docker日志的存放位置
- 具体来说,Docker将容器的日志输出保存在
/var/lib/docker/containers/<container-id>/<container-id>-json.log
文件中。 - 其中,
<container-id>
是容器的唯一标识符,可以通过docker ps
命令查看。每个容器都有一个独立的日志文件。
- 具体来说,Docker将容器的日志输出保存在
在云服务器安装 MySQL 数据库
- 下载wget
yum -y install wget
- 在线下载mysql安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
- 安装MySQL
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
- 安装mysql服务
cd /etc/yum.repos.d/ # 首先进入 /etc/yum.repos.d/
yum -y install mysql-server # 下载MySQL服务
- 启动MySQL
systemctl start mysqld
- 查看MySQL初始化的密码
grep 'password' /var/log/mysql/mysqld.log # 目录和以前的不太一样
![[Pasted image 20231118004655.png]]
大致意思是:root@localhost使用空密码创建!,即 使用 root 用户登录,密码为空
- 使用 root 用户登录MySQL
mysql -uroot -p # 在后面需要输入密码时,直接回车
- 修改MySQL的密码长度
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
到此教程就结束啦!!!