前言
之前的几篇文章,学习了在linux服务器上安装了JDK、mysql、redis,nginx这几个java应用程序常用的运行软件,链接如下:
Linux服务器,Java应用基础运行环境安装(一)——JDK安装
Java应用基础运行环境安装(二)——数据库安装
Java应用基础运行环境安装(三)——Redis安装
Java应用基础运行环境安装(四)——nginx安装
有个这些,我们就可以在linux服务器上部署一个简单的java应用了,我这里选择若依这个流行的java脚手架来部署。
若依系统部署
1.代码下载
我这里使用若依的前后端分离版本,官网地址若依官网,如图:
点击立即下载,进入前后端分离版本的git仓库,将代码clone到本地
clone到本地之后,项目结构如下:
其中ruoyi-ui为前端模块,其余是后端模块
2.后端打包部署
代码拿到之后,用idea工具打开,等待项目加载完成,maven依赖下载完成
2.1 执行脚本
使用Navicat工具,连接linux服务器上的mysql数据库,新增数据库ry-vue,如图:
在ry-vue数据库上运行ruoyi项目mysql文件夹下的两个sql脚本
两个脚本分别执行一下,执行成功之后,数据库表
2.2 后端打包
打包之前,修改项目配置文件,如图:
其中application.yml文件,修改redis配置信息,将host地址,和密码改为自己的服务器redis信息
application-druid文件修改数据库配置信息
logback.xml,修改日志存储路径
配置文件修改完后,使用idea的maven工具,进行打包,如图所示,在根目录下,双击install开始打包
出现如下界面说明打包成功
打包成功之后,我们可以在ruoyi-admin模块的target目录下找到需要部署的jar包,如图:
将ruoyi-admin.jar上传至服务器上,如图
2.3后端部署
使用命令mkdir /usr/local/ruoyi,新建ruoyi文件夹,将jar包移动至ruoyi目录下mv ruoyi-admin.jar /usr/local/ruoyi/.
进入ruoyi目录下,新建ry.sh文件vim ry.sh,将若依项目路径下的ry.sh脚本内容复制到里面,然后保存
不要将本地电脑的ry.sh直接上传到服务器上,window系统和linux的文件编码方式不一样,直接上传的脚本无法使用
使用命令chmod 744 ry.sh修改ry.sh文件权限;
输入命令./ry.sh start,启动后端程序
2.4查看日志
脚本执行成功后,ruoyi目录下会生成log文件夹,存储系统运行日志,如图:
进入logs文件,可以看到warn、info、error三级的系统日志,我们查询info日志,tail -f sys-info.log,查询info日志
可以看见后台应用已经正常启动
3.前端部署
3.1下载前端依赖
本地项目选中前端模块,右击-->打开终端,如图:
终端界面,输入npm install下载前端依赖
依赖下载完成后,输入npm run build:prod,构建生产环境包,如图
打包成功之后,会生成dist文件夹,如图:
将dist文件夹打成压缩包,上传至服务器nginx中的html目录下,如图
使用unzip dist.zip,解压至当前文件夹,如图
若提示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验证部署
浏览器输入服务器地址,如图:
可以正常登陆,若依部署成功~