SpringBoot+mysql搭建微信小程序后台(4)服务器搭建

此前后端代码只能在本地运行,不能在其他设备,联网访问,而搭建配置服务器后,把项目放在服务器运行,就可以通过服务器来访问我们的项目,如网站,作小程序数据接口等

本文采用的是阿里云ECS服务器,可根据自己的需求购买对应性能和使用场景的服务器
在这里插入图片描述
需要考虑的内容主要有,服务器地域,服务器性能(核心,内存)使用的系统存储盘购买时间等,笔者配置的是一台双核4G内存,1Mbps带宽,CentOS 8.0 64位,40GB云盘的服务器,可以满足轻量web开发和数据接口需求

购买后可以看到服务器的 公网IP ,可以理解为服务器的身份证号,是标识服务器的信息,对部署在服务器的网址或者接口也是要通过此IP来访问

购买完成后要先重制服务器密码,重启后才可正常使用

服务器管理工具

服务器购买成功后,为了可以方便我们对服务器传输文件,浏览目录,常用一些软件对服务器进行管理,笔者使用的是 FileZilla

官网链接:https://filezilla-project.org

选择对应系统和版本下载

Windows下是安装包,根据提示安装岂可

MacOS下解压得到的是运行文件,不会自动安装初始化,直接使用可能会弹出无法加载队列,无法写入XML文件等,这是因为软件未初始化还没运行目录,文件缺失
在这里插入图片描述
这时要在此用户目录下创建filezilla目录,执行

sudo chmod -R 777 .config
cd .config
mkdir filezilla					# 建立软件目录
sudo chmod -R 777 filezilla		# 赋予写入权限

此时再重启filezilla便可以正常运行了

为能使用软件与服务器进行连接,我们先要给服务器 安全组 配置访问规则,安全组有“入方向”和“出方向”,配置“入方向”让其他设备可以通过此端口访问服务器,配置“出方向”让服务器可以访问外部
在这里插入图片描述
首先配置一个22端口提供给filezilla接入
在这里插入图片描述
接下来在filezilla配置连接,主机填写公网ip,用户名默认root,服务器密码,端口处为22
在这里插入图片描述
连接完成后可以看到服务器目录,并可以在内增删文件目录等
在这里插入图片描述

安装JDK和mysql

可能需要的知识:Linux常用指令总结及编程操作

在CentOS下常用yum管理程序包和安装删除软件

查询可用jdk版本

yum search java|grep jdk	

这里安装的是jdk11,根据需求选择(笔者使用的springboot版本为2.5.3,内置tomcat版本为9,不支持jdk8,故安装等jdk11)

yum -y  install java-11-openjdk* 

等待安装,检查是否安装成功

java -version

如果已有java,选择java版本

alternatives --config java

安装mysql使用的rpm命令,这也是CentOS下的包管理工具

检测是否已有mysql,若有可删除

rpm -qa|grep mysql

rpm -e --nodeps mysql-libs		# 删除

查看可用安装源

yum list installed mysql*

安装mysql源

sudo wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

下载mysql源

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

安装下载好的rpm包

sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm 

安装mysql,安装提示输入“y”继续

sudo yum install mysql-server

检查是否安装成功,成功则得到版本号

mysql -V

运行mysql

service mysqld start

检查是否已经运行

service mysqld status

在这里插入图片描述
登陆mysql,此时还没有密码,若有密码可用在mysql目录下的mysqld.log的password查看初始化密码

mysql -u root -p

更改root密码

alter user user() identified by '新密码';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; 	# 设置密码永不过期
flush privileges; 										# 刷新权限

此时可以配置root的host内容,使其可以远程登录管理数据库

mysql的用户都在mysql库的user表内

use mysql;												# 切换为mysql库
update user set host = '%' where user = 'root';
flush privileges;

在阿里云服务器控制台配置mysql的3306端口,以供连接访问
在这里插入图片描述
现在可以在可视化软件入navicat,或者idea的数据库可视化中连接并登录数据库,此内容在SpringBoot+mysql搭建微信小程序后台(2)连接数据库和后端代码有描述

打包后端代码

此前做的访问端口一直都是localhost:8080,localhost即 127.0.0.1 本机地址,而后接的8080为访问端口,我们可以自行配置访问端口以达到隐藏或者便于访问的左右

如可在SpringBoot项目中的resources下的默认配置文件application.properties加入

server.port=80

此时配置了访问端口为80(http),这是可以在访问url是不书写端口号的标志,即可以直接通过localhost货ip访问,在购买 url域名 后可以添加 SSL证书 ,配置443(https)端口以供安全访问

idea右侧Maven框内选择package对项目进行打包
在这里插入图片描述
项目目录target下可以得到对应jar包
在这里插入图片描述
使用filezilla将jar包导入服务器的home目录,以供服务器运行

进入包所在目录,使用命令

java -jar 包名.jar 

当看到springboot程序运行,tomcat服务器运作,端口变成application配置的端口后,程序已经正常运行,若配置的80端口,可在浏览器http://ip地址来访问后端中已写好的接口

注意:配置的端口一定要在服务器安全组中配置出/入方向端口,否则无法接入或访问

服务器后台保持运行

若关闭了服务器控制台,运行中的程序也会相应停止,但web或者后台是持久运行的,我们需要这些项目能在服务器端保持运行,CentOS提供了一种方式是 nohup 命令后台运行,这里将nohup命令编写成运行脚本,控制运行和停止,并得到运行日志文件

运行脚本run.sh

echo stop application
source stop.sh					# 运行前先检查是否已经有在运行的项目,若有则停止
echo start application
source start.sh

开始脚本start.sh

nohup java -jar 包名.jar --server.port=端口号 &

停止脚本stop.sh

PID=$(ps -ef | grep 包名.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

首先赋予脚本的执行权限,否则无法运行

chmod u+x *.sh		# 用户创建的.sh后缀文件拥有此权限

然后使用Linux运行命令

./run.sh			# 运行项目
./stop.sh			# 停止项目
cat nohup.out		# 查看项目日志

到此后台项目已经可以在服务器上运行,但是长期使用ip访问服务器可能会导致ip被封(运营商担心有恶意使用或者黑客攻击造成频繁访问ip),而且通过ip访问无法开启https(443)端口,则无法作为小程序接口,所以需要将ip绑定域名,添加SSL证书加入项目,并通过icp备案后,才可开启https(443)端口

猜你喜欢

转载自blog.csdn.net/m0_48878393/article/details/119282662