Spring-从零开始将前后端项目和MySQL数据库部署到Linux云服务器上

目录

一.云服务器

        1.购买云服务器

二.使用Xshell和Xftp连接云服务器

        1.安装Xshell并连接云服务器

        2.安装Xftp

三.安装MySQL

        1.查找安装包

        2.安装MySQL

        3.查看MySQL状态

        4.MySQL安装安全设置

        5.连接数据库

        6.给数据库设置密码

        7.将准备好的sql文件部署到数据库中

四.在云服务器上搭建Java部署环境并部署后端项目

        1.更新软件数据包

        2.安装软件包

        3.将后端项目打包

        4.启动后端项目

五.在云服务器上搭建前端运行环境并且部署前端项目

        1.将前端项目打包,

       2. 将打包好的包放到data文件夹中:

       3. 安装nginx:

        4.配置nginx:


一.云服务器

        1.购买云服务器

                这里以阿里云为例:轻量应用服务器_web服务器_个人建站_弹性计算-阿里云

                因为我们只是简单的部署前后端和数据库,所以这里我们选择2核2G的云服务器就完全够用了。

                一般类似阿里,百度,华为,腾讯都是有云服务器的,可以看一看有一些是有新用户优惠的,非常便宜。

                对云服务器进行配置后进行购买,支付完成后,系统会自动配置属于我们的云服务器。

                        对于新的服务器要重置一下密码:

开放服务器端口:

云服务器的基本信息:

二.使用Xshell和Xftp连接云服务器

        Xshell官网https://www.xshell.com/zh/free-for-home-school/

        1.安装Xshell并连接云服务器

                点击上面的官网连接,然后下载Xshell:

        注册个人用户:

        首次进入Xshell需要创建一个新的会话:

        创建完成后:

        点击刚才创建好的会话:

        这里输入在云服务器上创建好的用户名就可以,如果没有就先进入root用户然后在root用户下创建一个新的用户完成配置。 

        有的时候在选定用户后会直接连接失败,此时只需要重新选择一下刚才创建好的会话就好了:

        如果刚才修改的密码:

        连接成功

        2.安装Xftp

        此时就可以通过拖动实现本地主机和远程云端服务器文件传输了。

三.安装MySQL

        1.查找安装包

apt list | grep "mysql-serve"

        2.安装MySQL

sudo apt install mysql-server
root@hcss-ecs-0bb1:~# apt list |grep "mysql-server" #查找mysql的安装包
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
default-mysql-server-core/focal,focal 1.0.5ubuntu2 all
default-mysql-server/focal,focal 1.0.5ubuntu2 all
mysql-server-8.0/focal-updates,focal-security 8.0.39-0ubuntu0.20.04.1 amd64
mysql-server-8.0/focal-updates,focal-security 8.0.39-0ubuntu0.20.04.1 i386
mysql-server-core-8.0/focal-updates,focal-security 8.0.39-0ubuntu0.20.04.1 
amd64
mysql-server-core-8.0/focal-updates,focal-security 8.0.39-0ubuntu0.20.04.1 i386
mysql-server/focal-updates,focal-updates,focal-security,focal-security 8.0.39-
0ubuntu0.20.04.1 all
root@hcss-ecs-0bb1:~# sudo apt install mysql-server #输⼊安装命令
Reading package lists... Done
Building dependency tree 
Reading state information... Done
//...
Need to get 36.8 MB of archives.
After this operation, 318 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y #输⼊Y确认
Get:1 http://repo.huaweicloud.com/ubuntu focal/main amd64 mysql-common all 
5.8+1.0.5ubuntu2 [7,496 B]
Get:2 http://repo.huaweicloud.com/ubuntu focal-updates/main amd64 mysql-clientcore-8.0 amd64 8.0.39-0ubuntu0.20.04.1 [5,088 kB]
Get:3 http://repo.huaweicloud.com/ubuntu focal-updates/main amd64 mysql-client-
8.0 amd64 8.0.39-0ubuntu0.20.04.1 [22.0 kB]
//...
emitting matrix : 100% |###########################################| 
done!
1

        3.查看MySQL状态

                安装好后,检查数据库的运行状态:

sudo systemctl status mysql

        4.MySQL安装安全设置

                默认的MySQL设置是不安全的,MySQL安装提供了一个安全脚本,用于解决不太安全的默认选项。

sudo mysql_secure_installation
root@hcss-ecs-0bb1:~# sudo mysql_secure_installation #安装安全设置
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y #是否设置验证密码组件
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary 
 file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 #设置密码强度
Skipping password set for root as authentication with auth_socket is used by 
default.
If you would like to use password authentication instead, this can be done 
with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-userpassword-management for more information.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #默认情
况下,MySQL安装有⼀个匿名⽤⼾, 允许任何⼈登录MySQL. 是否删除匿名⽤⼾?
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #仅
应允许root从'localhost'连接
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for 
No) : Y #默认情况下, MySQL带有⼀个test数据库, 是否删除?
 - Dropping test database...
Success.
 - Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是
否现在加载配置, 使刚才的修改⽣效? 
Success.
All done!

        5.连接数据库

        没有设置过密码的新数据库可以这样连接

sudo mysql

        如果数据库被设置密码了系统会报错

        6.给数据库设置密码

        进入数据库后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

        7.将准备好的sql文件部署到数据库中

                这里使用Navicat是方式

                在服务器中创建一个data路径

                进入这个文件夹中,使用xftp将刚才准备好sql文件导入到服务器中:

                然后在data中使用mysql -uroot -p 输入密码进入数据库,在数据库中创建所需要的数据库,注意Linux中是严格区分大小写的,在后端中设置的是大写的数据库就创建大写的,设置是小写的就创建小写的。

                创建好数据库后,进入数据库,执行对于的数据库文件:

source /data/XXX.sql;

                执行完成后在服务器中就将数据库部署好了。

四.在云服务器上搭建Java部署环境并部署后端项目

        1.更新软件数据包

sudo apt-get update

        2.安装软件包

                首先检查系统是否已经下载好了,项目所需要的jdk

apt list | grep "jdk"

                如果没有就安装所需要的jdk,这里安装的是OpenJDK,OpenJDK是一个开源的JDK版本,和Oracle官方的JDK略有区别,此处就试用OpenJDK就可以。安装Oracle会非常麻烦。

sudo apt install openjdk-11-jdk

                安装完成后检查jdk是否安装成功了:

java --version

        3.将后端项目打包

                检查后端项目配置文件的配置是否正确:

                成功后会在target文件中得到被打包项目的包

                然后将这个jar包放到刚才创建好的data文件夹中:

        4.启动后端项目

                启动后端项目:

nohup java -jar projectmgt.jar > logs.out 2>&1 &

                查看日志:

tail -f logs.out

五.在云服务器上搭建前端运行环境并且部署前端项目

        1.将前端项目打包,

                这里使用的前端编辑器是WebStorm:

       2. 将打包好的包放到data文件夹中:

       3. 安装nginx:

# 更新软件包索引
sudo apt update

# 安装 Nginx
sudo apt install -y nginx

# 启动 Nginx
sudo systemctl start nginx

# 设置开机自启
sudo systemctl enable nginx

# 查看运行状态
sudo systemctl status nginx

        4.配置nginx:

​​​vim /etc/nginx/nginx.conf

        在http中配置如下:

server {
                listen 8090;
                server_name localhost;

                root /data/projectManager;
                index index.html;

                # 前端 vue 路由处理
                location / {
                        try_files $uri $uri/ /index.html;
                }

                # 反向代理后端接口
                location /projectmgt/ {
                        proxy_pass http://127.0.0.1:19010/projectmgt/;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        }

        然后前端项目就部署成功了。

### RuoYi-Vue 项目在阿里云上的部署教程 #### 准备工作 为了顺利地将RuoYi-Vue项目部署至阿里云环境,需提前完成一系列准备工作。这包括但不限于选购合适的ECS实例、配置安全组规则以及准备必要的软件开发工具包(SDK)[^1]。 #### ECS 实例创建与基础设置 选择适合业务需求的ECS实例规格非常重要;对于大多数中小型应用而言,2核2GB内存搭配40GB硬盘的空间通常已经足够满足日常运行所需[^2]。购买完成后应立即登录阿里云控制台调整对应的安全策略,开放HTTP(80)及HTTPS(443)端口访问权限以便后续Web服务正常运作。 #### 安装依赖组件 进入已开通的Linux虚拟机内部执行命令行操作来安装Java JDK其他必备库文件。考虑到CentOS系列发行版的特点,推荐采用yum源的方式快速获取最新稳定版本: ```bash sudo yum update -y && sudo yum install java-1.8.0-openjdk-devel git wget unzip nginx mariadb-server -y ``` 上述指令一次性完成了JDK下载安装、Git版本控制系统引入、Wget/Unzip辅助程序加载还有Nginx反向代理服务器架设以及MariaDB数据库引擎初始化等多项任务。 #### 下载并编译前端工程 通过克隆官方GitHub仓库地址获得最新的RuoYi-Vue前端源码副本之后,在本地环境中利用Node.js平台下的npm或yarn工具链实施打包构建动作。具体做法如下所示: ```bash cd /root/ git clone https://github.com/y_project/RuoYi-Vue.git ruoyi-vue-front cd ruoyi-vue-front npm config set registry http://registry.npmmirror.com npm i pnpm -g pnpm i pnpm run build:prod ``` 这里特别强调一点:鉴于国内网络状况特殊性考量,默认镜像站被切换为中国科学技术大学提供的加速站点以提高资源拉取效率。 #### 后端部分处理方式 针对后台管理系统的搭建,则主要围绕Spring Boot框架展开讨论。先是从远程仓库同步下整套解决方案再按照既定流程逐步推进直至最终成品出炉为止: ```bash cd .. wget https://github.com/y_project/RuoYi/releases/download/v4.2.0/ruoyi-vue.zip unzip ruoyi-vue.zip mv ruoyi-vue ruoyi-admin chown -R root.root ruoyi-admin chmod +x ruoyi-admin/*.sh sed -i 's/^server.port=.*/server.port=8089/' ruoyi-admin/application.yml sed -i '/spring.datasource.url=/c\spring.datasource.url=jdbc:mysql:\/\/localhost:3306\/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false' ruoyi-admin/application.yml sed -i '/spring.datasource.username=/c\spring.datasource.username=root' ruoyi-admin/application.yml sed -i '/spring.datasource.password=/c\spring.datasource.password=' ruoyi-admin/application.yml ./ruoyi-admin/shell/start.sh ``` 以上脚本实现了压缩包解压重命名、修改启动参数设定MySQL连接字符串等一系列自动化作业逻辑。 #### Nginx 反向代理配置优化 为了让外部能够顺畅浏览网站页面内容,还需要精心设计一套高效的负载均衡机制——即借助于高性能轻量级web server(Nginx),将其作为前置调度器负责接收客户端请求并将之转发给实际提供服务的应用层容器内监听着不同TCP/IP协议簇接口的服务进程去响应处理。编辑`nginx.conf`样例如下: ```nginx http { ... upstream backend { server localhost:8089; } server { listen 80; server_name your-domain-name; location / { proxy_pass http://backend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; add_header Cache-Control no-cache; expires off; } location /static/ { alias /data/applications/nginx/html/static/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } ``` 值得注意的是,此处定义了一个名为`upstream`的上游节点池用于指向后端API网关所在位置,并且指定了静态资源映射路径确保HTML/CSS/JS等素材可以正确显示出来[^4]。 最后重启Nginx使更改生效即可实现完整的前后端分离架构模式下的在线办公管理系统[RuoYi](https://doc.ruoyi.vip/)成功上线运营!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值