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

sprinboot+vue项目详细部署步骤

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

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/{
            #这里8091后面没有加/是因为在规则引擎服务的properties配置文件没有加/
			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/ {
		  #这里后面加了/是因为yml的项目路径默认加了一个 /
			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/

大功告成!!!

猜你喜欢

转载自blog.csdn.net/qq_45925197/article/details/132154606
今日推荐