springboot+vue真实项目部署详细步骤

news2025/1/19 23:22:41

sprinboot+vue项目详细部署步骤

文章目录

  • sprinboot+vue项目详细部署步骤
    • 1、准备部署文件
    • 2、安装mysql
      • 2.1、配置mysql
      • 2.2、用navicat远程连接mysql导入数据
      • 2.3、导入mysql数据
    • 3、安装jdk
    • 4、安装nginx
    • 5、安装redis
    • 6、创建对应的目录层级和启动
      • 6.1 构建启动脚本
      • 6.2 、修改两个后台服务的配置文件并启动
      • 6.3、存放前端目录
    • 7、安装配置nginx
      • 7.1、修改nginx配置
      • 7.2、启动nginx

下面是实际项目部署完整详细步骤,仅供参考。

1、准备部署文件

首先需要以下文件:

  • 后端包(关联交易需要:toplink-admin.jar后台管理包toplink-rule-server.jar规则引擎服务包)Maven->clean->package
  • 后端配置文件,比如application.ym等,用于后面把配置文件提取到和jar包同一路径进行修改
  • sql文件
  • 前端dist包 ,修改好ip,端口、路径等之后 npm run build命令进行打包
  • mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar(如果有别人的mysql服务器这个就不需要,直接把sql在别人的服务器运行)
  • redis安装包
  • nginx安装包

以及两台linux服务器:一台放数据库,另一台放代码,nginx,redis

2、安装mysql

当然,一般的项目部署可能直接连接别人的数据库,就不需要自己安装数据库跑sql文件。

2.1、配置mysql

首先下载好mysql的压缩包上传到存放mysql的linux服务器,进行解压,再按照下面步骤:

MySQL的安装步骤:
1.先进入MySQL的安装包   cd   mysql5.71/
2.检查依赖:        rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
3.避免依赖: rpm -Uvh --force --nodeps *.rpm
4.配置MySQL: vi  etc/my.cnf       在最后面添加lower_case_table_names=1
5.初始化:mysqld --initialize --user=mysql
6.启动MySQL: systemctl start mysqld
#查看mysql状态  停掉mmysql systemctl stop mysqld
#service mysqld status  或者ps -ef | grep mysql  kill -9 PID可以关闭端口 
7.查看防火墙状态: systemctl status firewalld    systemctl stop firewalld   停止防火墙
                禁用防火墙 systemctl disable firewalld.service
                                                 
8.查看日志文件中密码:cat /var/log/mysqld.log | grep password     root@localhost:这个后面的是密码  比如:  @localhost: L*e8a5teI/_6
9.登陆MySQL:  mysql -uroot -p        
10.修改MySQL的密码: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 
11.支持root用户允许远程连接mysql数据库 
	①show databases;
	②use mysql;
	③select user,host from user;
	④update user set host = '%' where user = 'root';
	⑤flush privileges;

12.刷新数据库: flush privileges;    

13.建立一个用户
  create user zmz identified by 'zmz';
  grant all privileges on *.* to 'zmz'@'%';
  flush privileges;

2.2、用navicat远程连接mysql导入数据

查看ip :

ifconfig

如果连接不上mysql:

ping linux的虚拟机ip

MySQL配置文件:检查MySQL服务器的配置文件(通常是/etc/mysql/my.cnf),确保bind-address参数的值设置为MySQL服务器的IP地址。如果该参数被设置为127.0.0.1,则只能本地访问MySQL,需要将其修改为服务器的IP地址。
bind-address = 服务器IP地址

还是连不上就查看防火墙关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service

2.3、导入mysql数据

建立数据库 ->执行sql文件即可

3、安装jdk

在项目代码和nginx、redis所在的服务器安装jdk。

  • 我这里先建了个目录/usr/local/jdk1.8,直接使用Xftp把下载好的jdk1.8上传到该路径下
  • 解压:
tar zxvf jdk-8u333-linux-x64.tar.gz

解压完成:

  • 接下来就该配置环境变量了,输入以下指令进行配置:
vim /etc/profile
  • 输入完毕并回车,在文件尾部添加如下信息: 注意自己的路径和jdk包名(输入i就可以进入编辑模式)
JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
  • esc 然后 :wq 保存退出
  • 编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:
source /etc/profile
java -version

查看版本如下 ,ok

4、安装nginx

也是首先下载nginx的压缩包,用可视化工具上传到linux服务器。

安装步骤如下:

Nginx的安装步骤:
cd usr/local/
mkdir nginx
使用可视化工具把nginx压缩包放进/nginx目录下
1.解压nginx    tar -xf nginx-make-1.19.5.tar.gz   或者yum install -y unzip 然后unzip 文件名.zip
2.进入sbin   chmod +x nginx
3.启动nginx     ./nginx
4.查看进程   ps -ef |grep nginx
5.返回上一级,进入conf,查看,ls |grep nginx.conf
6.检查是否安装成功:     访问本机ip

5、安装redis

1.解压redis     unzip redis.zip
2.进入bin文件
3.赋予权限    chmod   744  .........(文件)
4.启动:./start.sh 
或者  nohup ./redis-server /usr/local/redis/bin/redis.conf
5.查看进程: ps -ef |grep redis   

netstat -ano |grep 6379(端口号)

6、创建对应的目录层级和启动

  • 这个是项目的toplink-admin后台管理的层级

6.1 构建启动脚本

下面是启动脚本 server.sh 放在和jar包同一目录下(由于是两个服务,就改了两个脚本)

这里可能会出现脚本换行符的问题,如下为解决方式:

yum install dos2unix
dos2unix server.sh
chmod +x server.sh
#!/bin/bash
#下面分别改为你的服务名和jar名称
APP_NAME="toplink"
JAR_FILE="toplink-admin.jar"
JAVA_OPTS="-Xmx512m -Xms256m"
APP_ARGS=""
LOG_FILE="/var/log/${APP_NAME}.log"

start() {
    echo "Starting $APP_NAME..."
    nohup java $JAVA_OPTS -jar $JAR_FILE $APP_ARGS > $LOG_FILE 2>&1 &
    echo "$APP_NAME started."
}

stop() {
    echo "Stopping $APP_NAME..."
    pkill -f $JAR_FILE
    echo "$APP_NAME stopped."
}

status() {
    pgrep -f $JAR_FILE > /dev/null && echo "$APP_NAME is running." || echo "$APP_NAME is not running."
}

case "$1" in
    start) start ;;
    stop) stop ;;
    restart) stop; start ;;
    status) status ;;
    *) echo "Usage: $0 {start|stop|restart|status}"; exit 1 ;;
esac

exit 0

使用方式

启动命令:sh server.sh start  	或者 	./server.sh start
 
停止命令:sh server.sh stop 		或者 	./server.sh stop
 
重启命令:sh server.sh restart 	或者 	./server.sh restart

查看状态:sh server.sh status 	或者 	./server.sh status

6.2 、修改两个后台服务的配置文件并启动

由于配置文件已经被提取到与jar同一目录层级,所以会优先读取同一层级的配置文件,而不是里层的配置文件。

主要是修改数据库配置和文件路径等。

修改完之后用脚本启动toplink-admin服务

sh server.sh start

toplink-admin服务启动成功!

同理:这个是我的规则引擎服务的目录层级

执行脚本启动规则引擎服务。

#如果有字符报错先替换字符
dos2unix server.sh
chmod +x server.sh

sh server.sh start

6.3、存放前端目录

前端打好的dist文件层级如下

7、安装配置nginx

上面所有步骤完成后就是关键的步骤,安装配置nginx了,直接上传nginx.zip 用upzip nginx.zip就可以了

7.1、修改nginx配置

修改nginx的配置,注意自己的ip与前端拼接的地址,用来拦截后跳转到后端服务

#user  nobody;
user root root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8888;
        server_name  172.20.10.12;
		
		client_max_body_size 7m;
        #charset koi8-r;
		charset utf-8;
        
		location / {
			root /usr/local/gljy/gljy-ui/dist;
                        try_files $uri $uri/ /index.html;
			index index.html;
                        error_page 404 /index.html; 
		}

                location /urule {
			proxy_pass http://172.20.10.12:8091;
			client_max_body_size 100M;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		#
		location /toplink {
			proxy_pass http://172.20.10.12:8081;
			client_max_body_size 100M;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		
		
  
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

7.2、启动nginx

进入sbin目录,

cd /usr/local/nginx/sbin
./nginx

 # 指定配置文件启动(我指定的就是默认的配置文件)
./nginx -c  /usr/local/nginx/conf/nginx.conf

查看是否启动成功命令:ps -ef | grep nginx
停止nginx  ./nginx -s stop
重启nginx  ./nginx -s reload -c  /usr/local/nginx/conf/nginx.conf

到两个指定后台服务脚本路径下重启两个后台服务:

sh server.sh restart

访问localhost:8888/

大功告成!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/843021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库索引的使用

1、MySQL的基本架构 架构图 左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成是…

Python系统学习1-5-容器

1、字符串 字符串是不可变的数据 原因:如果在原有内存中修改,很可能破坏其他数据的空间 现象:每次需要修改字符串时,都会创建新数据,替换变量中存储的地址 字符串字面值 (1)建议使用双引号 name01 "悟空&q…

中介者模式(C++)

定义 用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变它们之间的交互。 应用场景 在软件构建过程中,经常会出现多个对象…

VUE框架:vue2转vue3全面细节总结(5)过渡动效

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人_python人工智能视觉(opencv)从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了: https://blog.csdn.net/lbcy…

公文写作素材:“干”字型排比句40例

1.怀着真诚“想干”,扛着担当“敢干”,瞄着路径“能干”,盯着责任“真干”,想着办法“会干”,带着智慧“巧干”,揣着情怀“认干”,铆着劲头“实干”。 2.脱下“皮鞋”、换上“运动鞋”&#xff…

3 vue的if语法

vue的if语法是相当于一个标签的属性来写进去的&#xff0c;比如说<h1 v-if“”>。要注意的是if语句里可以自动从数据层取值的&#xff0c;比如<h1 v-if"message">&#xff0c;这里就会自动把key为message的值取过来&#xff0c;而如果要传一个字符串&…

Vue [Day5]

自定义指令 全局注册 和 局部注册 inserted在指令所在的元素 被插入到页面中时&#xff0c;触发 main.js import Vue from vue import App from ./App.vueVue.config.productionTip false// 1.全局注册指令 Vue.directive(focus, {// inserted在指令所在的元素 被插入到页…

Java个人博客系统--基于Springboot的设计与实现

目录 一、项目概述 应用技术 接口实现&#xff1a; 数据库定义&#xff1a; 数据库建表&#xff1a; 博客表数据库相关操作&#xff1a; 添加项⽬公共模块 加密MD5 页面展示&#xff1a;http://121.41.168.121:8080/blog_login.html 项目源码&#xff1a;https://gitee…

初学 Python 需要安装哪些软件?超级实用,小白必看!

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 编程这个东西是真的奇妙。 对于懂得的人来说&#xff0c;会觉得这个工具是多么的好用、有趣&#xff0c;而对于小白来说&#xff0c;就如同大山一样。 其实这个都可以理解&#xff0c;大家都是这样过来的。 那么接下来就说…

Spring简述

Sping是什么Spring主要模块IOCDI依赖注入的三种方式 AOP术语 Sping是什么 Spring是一个轻量级的开源框架&#xff0c;主要作用是为了简化开发&#xff0c;它以IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;为内核 Spring主要模块 我们一般…

cocosCreator 之 i18n多语言插件

版本&#xff1a; v3.4.0 环境&#xff1a; Mac 简介 i18n是国际化的简称&#xff0c; 全名&#xff1a;internationalization&#xff1b;取首尾字符i和n&#xff0c;18代表单词中间的字符数目。 该插件不需要产品做太多的改变&#xff0c;通过语言的设置&#xff0c;实现不…

P1194 买礼物(最小生成树)(内附封面)

买礼物 题目描述 又到了一年一度的明明生日了&#xff0c;明明想要买 B B B 样东西&#xff0c;巧的是&#xff0c;这 B B B 样东西价格都是 A A A 元。 但是&#xff0c;商店老板说最近有促销活动&#xff0c;也就是&#xff1a; 如果你买了第 I I I 样东西&#xff0…

【逗老师的PMP学习笔记】6、项目的进度管理

目录 一、规划进度管理1、【关键输出 】进度管理计划 二、定义活动1、【关键工具】拆解2、【关键工具】滚动式规划3、【关键输出】活动清单和活动属性4、【关键输出】里程碑清单 三、排列活动顺序1、【关键工具】紧前关系绘图法2、【关键工具】提前量和滞后量3、【关键输出】项…

Linux 中使用 verdaccio 搭建私有npm 服务器

安装 Node Linux中安装Node 安装verdaccio npm i -g verdaccio安装完成 输入verdaccio,出现下面信息代表安装成功&#xff0c;同时输入verdaccio后verdaccio已经处于运行状态&#xff0c;当然这种启动时暂时的&#xff0c;我们需要通过pm2让verdaccio服务常驻 ygiZ2zec61wsg…

网络编程——深入理解TCP/IP协议——OSI模型和TCP/IP模型:构建网络通信的基石

TCP/IP协议— 一、简介 TCP/IP协议&#xff0c;即传输控制协议/互联网协议&#xff0c;是一组用于在计算机网络中实现通信的协议。它由两个主要的协议组成&#xff1a;TCP&#xff08;传输控制协议&#xff09;和IP&#xff08;互联网协议&#xff09;。TCP负责确保数据的可靠…

【Linux取经路】冯诺依曼结构体系与操作系统的碰撞

文章目录 一、冯诺依曼体系结构1.1 硬件介绍1.2 内存的重要性 二、操作系统2.1 设计操作系统的目的2.2 操作系统是如何进行管理的&#xff1f; 一、冯诺依曼体系结构 我们现在常见的计算机&#xff0c;如笔记本&#xff0c;以及我们不常见的计算机&#xff0c;如服务器&#x…

Pycharm连接服务器

前提&#xff1a;必须为pycharm专业版才能连接到服务器 以下为pycharm2023专业版 一、连接 系统环境 虚拟环境&#xff08;前提&#xff1a;已安装anaconda&#xff09; (1) anaconda环境 (2) 自己创建的虚拟环境 这里为envs下的spotr 二、查看连接情况 选择自动上传

Docker 发布一个springboot项目

文章目录 1、新建SpringBootDemo项目并打包2、使用Dockerfile打包&#xff08;基础用法&#xff09;进一步maven源码打包法 3、更进一步&#xff08;maven插件打包&#xff09;docker-maven-pluginspring-boot-maven-plugin前提条件本地环境配置项目环境配置maven插件打包运行校…

一文让你了解网络安全和云安全的区别与联系

相信大家对于网络安全和云安全的关系不是很了解&#xff0c;今天小编就和大家来一起聊聊网络安全和云安全的区别与联系&#xff0c;仅供参考哦&#xff01; 网络安全和云安全的区别 1、两者定义不同。网络安全通常指计算机网络的安全&#xff0c;实际上也可以指计算机通信网络…

同源策略简单解释

浏览器同源策略 什么时同源策略 协议、域名(IP)、端口相同即为同源。浏览器的同源策略是一种约定&#xff0c;是浏览器最核心也是最基本的安全功能&#xff0c;如果浏览器少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。 http://192.168.200.131/user/1 https…