我的另一篇博客,有兴趣可以看看,部署思路都是一样的。
目录
一、准备工作
购买云服务器
首先前往云服务器平台(阿里云或腾讯云)购买云服务器(可以免费试用),此处我选择的是阿里云服务器,可以免费试用3个月。
然后创建服务器,选择常见linux的发型版本,centos、debian、ubuntu 啥的都行。此处,我使用的是ubutun,地区可以选择离自己现在所处位置近的。
登录云服务器
首先登录阿里云的官网,点击右上角的“控制台”,找到我的资源,实例,再点击“管理资源”,
找到安全组管理,添加端口,
入方向-手动添加,增加4个端口,分别是
- 80用于nginx
- 8101、8102、8103、8104用于项目后端
- 3306用于mysql
添加完记得点击保存,页面上会出现刚刚添加的端口。
这个时候,我们就可以尝试访问我们的服务器了,点击远程登录,通过Workbench远程连接,点击“立即登录”,
输入密码,看到这个界面说明成功连接了。
安装宝塔
使用宝塔可以非常方便地部署前端、后端项目,但是有一个前提条件:你的服务器已经安装了宝塔,或者你的服务器非常干净,什么环境都没有,那就可以安装宝塔。
访问宝塔官方地址:宝塔面板下载,免费全能的服务器运维软件
找到相应的操作系统,点击复制。此处,我的阿里云服务器是Ubuntu的,
想要安装宝塔非常简单,粘贴指令到阿里云的控制台上,直接命令行运行下面的命令,途中有y/n,直接选择y即可。
wget -O install.sh https://download.bt.cn/install/install_lts.sh && sudo bash install.sh ed8484bec
安装完成之后,如下图所示,
【云服务器】请在安全组放行 33213 端口
外网面板地址: https://47.93.255.114:33213/b6aa7846
内网面板地址: https://172.29.117.100:33213/b6aa7846
username: jl6whtrn
password: xxxxxxxx
安装成功之后记得将宝塔的账号密码信息存储起来。
云服务器开放宝塔相应端口(本文我的端口是33213),即可使用本地电脑访问宝塔面板(访问地址为上图的外网面板地址),输入账号密码即可进入宝塔面板。
二、jdk和数据库
安装环境
(1)复制外网面板地址,浏览器打开,就可以进入宝塔面板腾讯云专项网网页,
然后登录到宝塔面板,账号密码是上面命令生成的账号密码。
进入之后,需要绑定宝塔官网账号,如果没有的话,需要注册一下。
(2)找到左侧的软件商店,搜索应用并且安装以下(如果没有用到redis,可以不用安装):
如果需要其他环境自行下载。
一共安装了这么多,
安装Java环境jdk
(1)要先安装Java环境(根据项目情况选择)
点击宝塔面板左侧的网站 - Java项目 - Java环境管理 - 安装Java环境,
此处我选择的是jdk8,等待安装完成,可以看到,
然后需要在文件中加入以下(注意修改成自己的jdk路径):
(2)打开宝塔面板左侧的终端,输入以下命令打开文件:
vim /etc/profile
或者直接找到文件/etc/profile,进入编辑模式,
在文件中加入以下(注意修改成自己的jdk路径):
# jdk解压后的目录路径
export JAVA_HOME=/www/server/java/jdk1.8.0_371
export JRE_HOME=/www/server/java/jdk1.8.0_371/jre
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
然后按esc,输入:wq保存文件。
(3)然后,我们需要更新一下这个文件/etc/profile,使用下列命令,
source /etc/profile
打开菜单左侧的终端,输入以下命令查看java版本:
java -version
就可以看到jdk的版本了。
添加数据库
(1)点击左侧的数据库,添加数据库。用户名和密码自己设置,
添加完成之后,可以在面板中看到了。
(2)添加后,导入数据库表,
将以sql为后缀的文件上传,此文件即建表语句。
(3)然后点击工具,可查看是否成功建表。
(4)要想查看数据库中表导入数据是否成功,可以通过我们之前安装的这个phpMyAdmin 5.0,
进入宝塔面板左侧的数据库,点击phpMyAdmin,选择面板访问,
进入之后,会生成下面这个页面,可以可视化数据库表的数据。
三、部署前端
修改后台服务所在ip
打开前端项目,找到request.ts文件,修改后台服务所在ip,
vue build
如果前端是vue工程,进入到vue文件下,cmd进入命令行,输入npm run build打包。
打包成功后会出现dist文件,
将dist文件拖到宝塔面板文件里进行上传,此处我的路径是/www/wwwroot。
创建站点
(1)点击左侧的网站添加站点。
其中,需要先点击安装ftp,
安装完成之后,添加ip或域名,端口随便写一个(此处8080不合法,可以随便先写一个端口,后续可以在设置中修改)
(2)修改域名为8080,然后找到网站目录,定位到上面添加的dist文件位置,最后不要忘记保存!
此时,我将之前的前端打包文件夹dist放到了这个目录下,并且修改了网站站点的配置。
(3)然后在浏览器中通过ip可以访问到前端页面了(能看到就行,其他问题往后看)。
四、部署后端
宝塔安装nacos
(1)登录宝塔面板,在宝塔面板的左侧有个软件商店,搜索“Nacos”点击右侧的“安装”,点击右上角“立即安装”即可安装。
(2) 在宝塔面板的左侧的安全中,为nacos和后端微服务添加端口。nacos默认端口是8848。
(3)打开已经安装好的nacos,在设置里选择启动nacos服务,
等待启动完成,
(4)本地浏览器打开nacos面板,
OK,说明nacos启动成功了。
修改数据库配置
Maven配置子父模块打包
对于微服务项目,我们通常是使用 Maven 的子父模块功能进行管理的。需要部署项目时,不用针对每个子服务单独执行mvn package 命令进行打包,而是可以一键打包所有服务。
想要实现这个功能,需要给子父模块的依赖文件(pom.xml)进行一些配置,主要包括:
1)父模块配置
在父模块的 pom.xml 文件中引l入 spring-boot-maven-plugin 即可,注意一定不要配置 configuration 和 repackage!
示例代码如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<!-- <configuration>-->
<!-- <mainClass>com.water.ojbackendmicroservice.OjApplication</mainClass>-->
<!-- <skip>true</skip>-->
<!-- </configuration>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>repackage</id>-->
<!-- <goals>-->
<!-- <goal>repackage</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
</plugin>
</plugins>
</build>
2)子模块配置
修改所有需要启动 Spring Boot 的服务(用户服务、题目服务、判题服务、网关服务)的子模块 pom.xml 文件。
主要是增加 executions 配置,使用 spring-boot-maven-plugin 的 repackage 命令来构建子模块,从而自动在构建时将公共模块的依赖打入jar 包。
示例代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
打包上传
然后对整个大项目打包,就可以直接打包所有的子模块了。
打包完成之后,会在每个子模块的target文件夹下看到各自的jar包。把所有的子模块的jar包上传到服务器的宝塔面板的文件下,此处我的路径是/www/wwwroot。
运行jar包
方式一:在终端命令运行jar包
(1)打开服务器终端,输入以下命令跳转文件。如:cd /www/wwwroot
cd jar包存放位置
临时运行jar包(输入java -jar 后,再输入jar包的前面几个字母然后按tab键可以补全名称):
java -jar jar包
启动之后,
然后,在浏览器进入地址,就可以看到后端正常启动了。
(2)如果想要服务器一直运行jar包(关闭页面后也会运行),输入以下命令:
nohup java -jar jar包 &
方式二:添加Java站点(服务器和面板都开一下端口)
(1)直接添加这个 java 项目的端口,
- 项目jar路径:选择上传的jar包路径位置
- 项目端口:要和自己的项目端口一样
- 项目jdk:已安装的jdk
- 项目执行命令:是自动生成的
- 开机启动:选择
类似下面这种流程,
(2)此处我选择第二种方法,分别对gateway服务和3个微服务进行启动。
naocos查看已启动服务
打开nacos管理面板进行查看,就可以看到启动的服务了。
OK,nacos这部分算是成功了。
五、测试
(1)我在站点里设置的后端端口是8101、8102、8103、8104,在浏览器中输入后端的某个路径,就可以看到后端可以正常访问了,
(2)前端也可以了,我在站点里设置的前端端口是8080,因此ip+8080访问,
打开服务器对应网站(服务器ip地址+域名号),刷新即可,
可以看到,后端已经从数据库中查询到了数据,并返回给前端了。