Linux服务器,若依项目部署

2,708 阅读3分钟

前言

之前的几篇文章,学习了在linux服务器上安装了JDK、mysql、redis,nginx这几个java应用程序常用的运行软件,链接如下:
Linux服务器,Java应用基础运行环境安装(一)——JDK安装
Java应用基础运行环境安装(二)——数据库安装
Java应用基础运行环境安装(三)——Redis安装
Java应用基础运行环境安装(四)——nginx安装
有个这些,我们就可以在linux服务器上部署一个简单的java应用了,我这里选择若依这个流行的java脚手架来部署。

若依系统部署

1.代码下载

我这里使用若依的前后端分离版本,官网地址若依官网,如图:

image.png
点击立即下载,进入前后端分离版本的git仓库,将代码clone到本地

image.png
clone到本地之后,项目结构如下:

image.png
其中ruoyi-ui为前端模块,其余是后端模块

2.后端打包部署

代码拿到之后,用idea工具打开,等待项目加载完成,maven依赖下载完成

image.png

2.1 执行脚本

使用Navicat工具,连接linux服务器上的mysql数据库,新增数据库ry-vue,如图:

image.png
在ry-vue数据库上运行ruoyi项目mysql文件夹下的两个sql脚本

image.png

image.png
两个脚本分别执行一下,执行成功之后,数据库表

image.png

2.2 后端打包

打包之前,修改项目配置文件,如图:

image.png
其中application.yml文件,修改redis配置信息,将host地址,和密码改为自己的服务器redis信息

image.png
application-druid文件修改数据库配置信息

image.png
logback.xml,修改日志存储路径

image.png 配置文件修改完后,使用idea的maven工具,进行打包,如图所示,在根目录下,双击install开始打包 image.png
出现如下界面说明打包成功 image.png
打包成功之后,我们可以在ruoyi-admin模块的target目录下找到需要部署的jar包,如图:

image.png
将ruoyi-admin.jar上传至服务器上,如图

image.png

2.3后端部署

使用命令mkdir /usr/local/ruoyi,新建ruoyi文件夹,将jar包移动至ruoyi目录下mv ruoyi-admin.jar /usr/local/ruoyi/.
进入ruoyi目录下,新建ry.sh文件vim ry.sh,将若依项目路径下的ry.sh脚本内容复制到里面,然后保存

image.png

image.png

不要将本地电脑的ry.sh直接上传到服务器上,window系统和linux的文件编码方式不一样,直接上传的脚本无法使用

image.png
使用命令chmod 744 ry.sh修改ry.sh文件权限;
输入命令./ry.sh start,启动后端程序

image.png

2.4查看日志

脚本执行成功后,ruoyi目录下会生成log文件夹,存储系统运行日志,如图:

image.png
进入logs文件,可以看到warn、info、error三级的系统日志,我们查询info日志,tail -f sys-info.log,查询info日志

image.png
可以看见后台应用已经正常启动

3.前端部署

3.1下载前端依赖

本地项目选中前端模块,右击-->打开终端,如图:

image.png
终端界面,输入npm install下载前端依赖

image.png
依赖下载完成后,输入npm run build:prod,构建生产环境包,如图

image.png
打包成功之后,会生成dist文件夹,如图:

image.png
将dist文件夹打成压缩包,上传至服务器nginx中的html目录下,如图

image.png
使用unzip dist.zip,解压至当前文件夹,如图

image.png

若提示unzip命令不存在,使用 yum install -y unzip zip,安装依赖即可

3.2修改nginx配置文件

输入命令vim /usr/local/nginx/conf/nginx.conf,编辑配置文件,参考官网nginx配置文件修改,地址:nginx配置,修改后的nginx配置文件如下:

#user  nobody;
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压缩
    gzip  on;
    # 不压缩临界值,大于1K的才压缩,一般不用改
    gzip_min_length 1k;
    # # 压缩缓冲区
    gzip_buffers 16 64K;
    # # 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
    gzip_http_version 1.1;
    # # 压缩级别,1-10,数字越大压缩的越好,时间也越长
    gzip_comp_level 5;
    # # 进行压缩的文件类型
    gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
    # # 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
    gzip_vary on;
    # # IE6对Gzip不怎么友好,不给它Gzip了
    gzip_disable "MSIE [1-6].";

    server {
        listen       80;
        server_name  localhost;

        charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {
            root   html/dist;
        try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

    location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080/;
       }


        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

配置修改完成后,重启nginxsystemctl restart nginx

3.3验证部署

浏览器输入服务器地址,如图:

image.png

image.png
可以正常登陆,若依部署成功~