一、前后端不分离SpringBoot项目部署

1、配置阿里云服务器

1.1、购买服务器

阿里云官网 https://www.aliyun.com/
注册阿里云账号(自行注册)
阿里云购买教程 https://yq.aliyun.com/articles/699313
公网IP 私网IP

1.2、购买域名

进入阿里云官网 https://www.aliyun.com/,点击 “域名”
搜索你想要的域名进行购买;

1.3、备案

  1. 进入阿里云官网 https://www.aliyun.com/>
  2. 进入“控制台”
  3. 进入备案 阿里云域名首次备案教程 https://www.yunqikan.cn/2255.html

1.4、域名解析

  1. 域名已经备案完成
  2. 进入阿里云官网 https://www.aliyun.com/
  3. 进入控制台
  4. 点击左侧弹出栏中域名
  5. 点击解析添加记录按照步骤进行解析
  6. 域名解析网上教程很多我在网上随便找了一个教程:
https://blog.csdn.net/qq_36135335/article/details/99548040 10min

1.5、安全策略(安全组)

  1. 登录阿里云
  2. 进入控制台
  3. 进入云服务器ECS
  4. 进入网络与安全-安全组
  5. 点击"配置规则"
  6. 点击"手动添加"
80/80 8080 /8080 888/888 8888/8888

2、宝塔面板相关

2.1、安装CentOS宝塔面板

远程连接个人阿里服务器

进入宝塔官网 www.bt.cn,进行下载:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

运行命令后,宝塔面板会自动安装,期间你需要输入一个y,如下所示:

Do you want to install Bt-Panel to the /www directory now?(y/n):y

输入y,然后回车即可。
等待,大概2分钟左右,显示“Complete!”,即安装完毕!

注意:下载完成会出现有下面这样一段内容:"(一定要先复制保存下来)"

Complete!
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
success
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://公网IP:8888/335fc27a
内网面板地址: http://172.27.86.45:8888/335fc27a
username: oild6mqk
password: 54922e3f
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
Time consumed: 1 Minute!
Bt-Panel: http://公网ip:8888/随机安全入口
username: 随机用户名
password: 随机登录密码

2.2、面板相关设置

  1. 输入 http://公网ip:8888/随机安全入口

  2. 输入用户名和密码进行登录

  3. 进入首页弹窗推荐你安装相关软件(点击左侧栏中的推荐软件选择版本 点击极速安装进行安装) 需要安装很长一段时间…

  4. 点击面板设置:

    修改安全入口(不修改临时的就会过期不安全)格式如:/mrkay

    修改面板用户:自定义就行用于登录

    修改面板密码:自定义就行用于登录

    绑定宝塔账号(可绑定可不绑定)

  5. 注意事项:

安装软件之前一定要确保你的阿里云服务器中之前没有安装过Mysql、tomcat等系统环境软件,如果安装了一定要卸载干净再进行安装宝塔推荐软件,否则会安装失败,后期相对麻烦。(如果嫌卸载麻烦一种暴力方式:云服务器系统重置  教程见第6章-其他教程)
1、弹窗中推荐的软件可以安装也可以不进行安装,因为后期你可以在软件商店中单独进行安装.
2、弹窗中的极速安装和编译安装区别主要是编译安装的相对稳定但是安装时间也会相对较长.
3、如果"phpMyAdmin"软件的版本是4.4以上安装的php版本最好是70以上也不要太高,因为太低了后期使       用"phpMyAdmin"工具会出现问题;此工具是用来操作MySql的界面化工具,相当于SQLyog工具.
4、面板设置中的 安全入口、面板用户、面板密码 一定需要修改并且记录下来防止忘记
 8888 加入安全组放行  888放行

2.3、面板软件安装及环境配置

上面介绍了推荐软件的安装及面板相关设置之后这里还需要安装一些插件和其他软件以及java环境配置:

宝塔源码一键部署插件安装

Java的JDK环境配置(这里可以采用偷懒方式)

JDK环境是Java项目运行的基础,没有配置JDK环境Java项目是无法运行的。

宝塔面板在我们安装tomcat的时候会默认并自动给我们安装一个JDK并配置环境,tomcat7默认安装jdk7

tomcat8默认安装jdk8,所以我们可以直接安装tomcat即可。

安装完毕远程连接云服务器 键入 java -version 弹出相关信息证明JDK安装及配置完成

2.4、站点相关

创建站点的目的是为了让我们访问 域名:端口 就能访问我们部署的项目;

  1. 进入宝塔面板
  2. 点击添加站点
  3. 输入已经解析过的域名:端口 如: www.baidu.com:8088 如果不加端口默认使用的是80端口,没有域名可以使用
  4. 云服务器的公网ip:端口,如: 127.0.0.1:8088
  5. 添加备注(备注要见名知意 一般我们可以设置自己要部署的项目的名字)
  6. ftp 和数据库可以先不进行创建其他保持默认 (如果要创建要和你项目的数据库名保持一致)
2.4.2、站点设置

站点设置主要是对已经添加的站点进行相关配置(这里主要是进行反向代理的配置)

  1. 点击已经添加的站点最右侧的设置连接进入设置界面
  2. 点击反向代理
  3. 点击添加反向代理
  4. 代理名称社会为你的项目名称即可
  5. 目标URL就是访问公网IP/域名之后会被转发到服务器中可以访问的ip:端口(这里我们使用127.0.0.1:端口即可,端口是80可以省略不写)其他保持默认,点击保存即可.

2.5、数据库相关

2.5.1 创建数据库

创建数据库是为了项目正常运行和效果数据展示做准备:

  1. 进入宝面板

  2. 点击 数据库–root密码 对root用户的密码进行修改

  3. 注意:一般修改为一个你项目中配置文件比较常用的密码就行

  4. 点击添加数据库

  5. 注意:这里的数据库名要和你项目中数据库名字一样就行(比如你项目中访问的数据库名字的blog 这里就写blog)

  6. 用户名一般也设置为你数据库名字就行,密码设置为root密码就行(为了方便记忆)

  7. 其他保持默认点击提交.数据库就创建完成

2.5.2 导入数据库表

数据库创建完成,接下来就是向云数据库中导入数据即可,将你window本地中的数据库导出为.sql文件保存到桌面上,进入宝塔面板–数据库–管理,就桌面生成的sql导入即可.

注意事项:

点击数据库管理连接或者PhpMyAdmin 页面打不开,可能原因有:PHP版本过低、PhpMyAdmin中设置的版本和PHP的版本不一致、888端口没有放行;(解决方案更新PHP版本为7.0以后版本、设置PhpMyAdmin版本和PHP版本一致、面板和云服务器都放行888端口、"如果以上方法都没有解决就直接卸载nginx重新安装,因为nginx的配置文件中有对PhpMyAdmin端口等信息的相关记录,当然你也可以选择修改,为了简单我是选择的重新安装nginx")

3、SpringBoot项目打包

3.1、配置文件修改

在打包SpringBoot的项目之前需要先对application.yml/application.properties文件进行修改

具体修改如下:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    # 面板中mysql的端口没有修改这里就不需要修改,IP也是用localhost因为此配置文要进行上传,blog要和你面板中创建的数据库名保持一致
    url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8
    username: root  # 宝塔面板中roo用户,一般为root
    password: ******  # 数据库中你设置的root密码
    
# 设置application的端口  注意:端口要和你设置站点的端口保持一致
server:
  port: 80

3.2、Maven插件打包项目

使用Maven插件打包项目为jar包

pom文件中引入maven插件
进行打包
//打包成jar包(若改为war包,则将jar改为war)
 <packaging>jar</packaging>
 <build>
    <!--设置jar包名字-->
    <finalName>demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
 </build>

4、宝塔面板上传项目相关

4.1、上传jar和配置文件

使用宝塔面板进行上传jar包和配置文件

  1. 进入宝塔面板
  2. 点击网站
  3. 点击站点的根目录,跳转到根目录文件夹
  4. 点击左上角的上传按钮上传jar包

或者

  1. 点击文件
  2. 在/www里面创建一个文件,我这里是javaweb
  3. 然后把你打包好的jar包上传进来

4.2、运行项目

1.查看以放行的端口

 firewall-cmd --list-all

2.添加放行端口

firewall-cmd --permanent --add-port=8088(项目端口)/tcp
firewall-cmd --permanent --add-port=8080(Tomcat端口)/tcp
firewall-cmd --permanent --add-port=8888(宝塔web面板端口)/tcp

3.重启防火墙(每次添加都需重启)

firewall-cmd --reload

4.查看防火墙是否开启

systemctl status firewalld


Active 为开启状态

5.关闭防火墙

systemctl stop firewalld


inactive 成功关闭

6.运行项目

远程连接阿里云服务器使用cd命令进入到jar包所在根目录 或者 在宝塔文件里面点击终端执行命令

java -jar 包名字.jar 

这个启动的话你关闭终端就不能继续访问了

7.使用 screen 工具进行解决

1.安装screen 执行命令----> yum install screen
2.进入/www/javaweb目录下执行
    利用screen-让jar包在后台运行
        screen java -jar demo-login.jar(你的jar包)

8.其他相关命令

查询端口,后面的端口号 /8089

netstat -nlp|grep 8089

在这里插入图片描述

[root@iZwz9g1c3fleimiwiop1hlZ ~]# netstat -nlp|grep 8888
tcp   0   0 0.0.0.0:8888   0.0.0.0:*   LISTEN   42416/python 

停止端口,后面的是 pid/python

kill -9 [PID]

查询jar包:

ps aux|grep medicine.jar 

输入上面的命令找到pid
杀死指定会话进程 执行命令----> kill -9 [进程号]
自动清理死去的进程 执行命令----> screen -wipe

5、项目遇到问题解决及优化

5.1、项目运行报错及解决

解决80端口占用问题:

第一种:通过命令获取出占用80端口的进程,将其"杀死"

netstat -lnp|grep 80   # 查看占用80端口的进程信息,主要看PID   
kill -9 [PID]          # 根据PID杀死进程

第二种优化解决方式:

## 第一种方式存在弊端:当我们解决了端口占用问题之后再次点击数据库--管理(或者PhpMyAdmin)发现又出现了之前的问题2.5.2中提到的页面不存在问题
## 优化解决
1,查看占用80端口的进程
netstat -lnp|grep 80
ps [pid]
#查看详细信息占用80端口是Nginx的master也就是说是Nginx默认使用的端口是80端口,如果我们杀死了Nginx进程那么PhpMyAdmin就没办法访问,如果让Nginx占用80端口使用80端口的项目就没法正常运行和访问.
2,修改Nginx的默认端口
 2.1 宝塔面板中点击软件商店--已安装  找到Nginx点击设置--点击配置修改  我们发现在配置的最后一行有
 include /www/server/panel/vhost/nginx/*.conf; 这样一句话  (这句是引入Nginx的conf配置文件) 而这些配置文件就是记录的我们宝塔面板中使用到Nginx的相关配置.
 2.2 根据目录(/www/server/panel/vhost/nginx)找到相关的配置文件,打开编辑,修改所有80端口为其他没有占用的端口并放行,并在宝塔和云服务器安全组中放行该端口,面板中重启Nginx或者重新加载配置即可。
 ## 上面2.2的步骤有点麻烦;我们还可以直接进行粗暴的优化处理:(不推荐)
 2.2 我们在2.1步骤中找到include /www/server/panel/vhost/nginx/*.conf;将此句直接注释掉变为
 "#include /www/server/panel/vhost/nginx/*.conf;"之后重启Nginx/重新加载配置即可.简单粗暴但是不推荐。(配置文件的定义都有自己的作用,注释掉之后该站点反向代理也将将失效,为了达到效果损失太多)
3,再次启动项目成功,访问PhpMyAdmin都能正常访问.

5.2、端口放行

28085 		是项目的端口号,
3306  		是Mysql端口号,
8888 		是宝塔面板端口号
443 		是HTTPS端口号,
80 			是http端口号,
3389 		是windows远程服务端口号,便于windows系统远程连接服务器
22 			是ssh端口号。

二. 部署前后端分离Springboot+Vue

1、前置准备

你要在阿里云服务器安装 mysql,jdk,tomcat,nginx这里不多说,直接部署

准备一个springboot+vue项目

1.1、配置数据库

在自己windows本机上开发完后,通过navicat等工具,直接给sql打包

在这里插入图片描述

选择结构和数据,获得相应的.sql文件后用通过navicat等工具,远程连接阿里云服务器,我这里是直接把之前的sql放到去上

在这里插入图片描述

1.2、Springboot打包

先去,改application.yml文件,连之前上传到服务器的数据库

在这里插入图片描述

再去,改pom.xml文件,改成jar包,设置jar名字,jar包名字可以默认不设置

在这里插入图片描述

在这里插入图片描述

上面文改好了就直接,打包成jar包,就不用多说了,直接package,

在这里插入图片描述

在target目录下找到jar包传到服务器上,我是传到/www/javaweb下

在这里插入图片描述

1.3、前端Vue打包

先去改一下vue.config.js文件

在这里插入图片描述

在这里插入图片描述

由于是vue写的,直接在控制台终端 npm run bulid即可,然后改一下dist里面的static文件路径

在这里插入图片描述

在这里插入图片描述

再把dist文件夹通过xftp传到服务器上,我是传到/www/wwwroot/dist上的

在这里插入图片描述

1.4、后端部署

进入到你jar包的位置:cd /www/javaweb/

启动:screen java -jar demo.jar(你的jar包)

1.5、前端部署

1.5.1、配置Nginx文件

首先到服务器上,进行安全组配置!十分重要!具体位置如下:

进去后配置规则,点击快速添加,添加80端口

然后利用xftp进入到nginx,放config文件的地方修改config文件

在这里插入图片描述

打开xshell 进入到:

cd /www/server/nginx/sbin

输入命令启动:

./nginx

查看是否启动:

ps -ef | grep nginx 

在这里插入图片描述

关闭命令:./nginx -s stop 或者 kill -9 进程id

到这里你的springboot+vue已经部署完成了

注意:这里直接放问域名可能显示不了页面要加 /index.html 如下:

游览器输入:域名或者IP/index.html

在这里插入图片描述

完成!!!!!!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐