若依前后端分离版部署

注:本文档的部署步骤是通过Docker进行部署的

1. 服务安装

部署若依前后端分离版 需要安装MySQL、Redis、Nginx

1.1 Dcoker安装MySQL

安装下载镜像

1.拉取mysql镜像
docker pull mysql

2.运行MySQL
docker run --restart=unless-stopped -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

不区分大小写的MySQL数据库

//重新创建容器
#复制配置
//退出容器
exit

//创建linux服务器上配置文件路径与数据库存储路径
mkdir -p /home/data/mysql/conf && mkdir -p /home/data/mysql/data
//将容器内的配置文件复制到linux服务器
docker cp mysql:/etc/mysql/my.cnf /home/data/mysql/conf/my.cnf
docker cp mysql:/etc/mysql/my.cnf /home/mysql/conf/my.cnf

//修改配置文件
vim /home/data/mysql/conf/my.cnf
//想改的配置往里写就完事了
lower_case_table_names=1

#安装新容器
 docker run --name mysql -p 3306:3306 -d -v /home/mysql/data:/var/lib/mysql -v /home/data/mysql/log:/logs -e MYSQL_ROOT_PASSWORD=root --restart=always  mysql --lower_case_table_names=1
 
#修改mysql数据库 使其可以远程访问到
docker exec -it mysql /bin/bash
mysql -uroot -p
root
use mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

1.2 Docker安装Redis

1. 拉取redis镜像
# 不指定版本号,默认拉取最新版的redis  docker pull redis
# 指定的版本号 docker pull redis:5.0.14
# 查看镜像是否拉取成功docker images

2. 运行redis
# 带密码认证的redis,登录时需要输入验证码  appendonly(redis是否持久化)
docker run --name redis -p 6379:6379 -d --restart=always redis redis-server --appendonly yes --requirepass zhangsan

# 不带密码认证的redis
docker run --name redis -p 6379:6379 -d --restart=always redis redis-server --appendonly yes

1.3 Docker安装Nginx

# 拉取nginx
docker pull nginx:1.18

# 挂载文件 本地路径
mkdir	-p /home/nginx/conf
mkdir	-p /home/nginx/log
mkdir	-p /home/nginx/html
# 挂载
# 生成容器
docker run --name nginx -p 80:80 -d nginx:1.18
docker run --name nginx -p 100:80 -d nginx:1.18

# 将容器nginx.conf文件复制到宿主机
# 将容器conf.d文件夹下内容复制到宿主机
# 将容器中的html文件夹复制到宿主机

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/
#卸载
docker rm -f nginx
#真实安装
docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:1.18
——————————————————————————————
docker run \
-p 100:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:1.18

2. 部署若依

2.1 下载若依源码

若依前后端项目地址:https://gitee.com/y_project/RuoYi

将项目下载或者git clone到本地并解压

ruoyi-ui文件夹是前端项目,其余为后端项目
在这里插入图片描述

2.2 远程连接服务器

这里我使用的是FinalShell,具体连接操作步骤 这里不做叙述

2.3 若依前端部署

打开dos窗口,进入ruoyi-ui文件夹,并对前端代码进行打包,生成一个dist文件夹,这就是前端代码打包后的文件

npm install --unsafe-perm --registry=https://registry.npm.taobao.org
npm run build:prod

也可以进入ruoyi-ui -> bin目录中 双击鼠标运行build.bat文件

在这里插入图片描述

将dist文件夹通过FinalShell上传到/home/nginx/html中

进入/home/nginx/conf/conf.d目录中,新建ruoyi.conf,添加以下内容

server {
    listen       80;
    listen  [::]:80;
    server_name  114.115.164.15;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

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

  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://114.115.164.15:8035/;
	 }

    #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   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

打开谷歌浏览器,输入ip地址访问

在这里插入图片描述

2.4 若依后端部署

  1. 导入若依数据库

  2. 修改项目中ruoyi-admin中的application.yml,application-druid.yml两个文件
    (1)在application.yml中,修改redis的信息,分别为host地址(你的服务器ip),port端口号(你的redis开放的端口号,一般为6379),password密码(你的redis的密码)。
    (2) 在application-druid.yml中,修改mysql的信息,url的中间填写访问mysql的 ip:端口号,例如:114.115.164.15:3306;username填你的mysql用户名;password填你的mysql密码。

  3. 尝试运行后端项目可以通过InteliJ IDEA或者eclipse软件来运行这个java后端项目,前提是你运行的本机上应该也具备一定的环境,jdk至少是1.8,以及本地8080端口(用于后端)已开启且未被占用。其他的例如mysql,redis可以直接通过服务器ip+端口号远程访问,不需要在本机上配置。

    出现下方图片所示LOGO表示启动成功,可以开始打包后端代码。如果未成功,检查报错,查看是否关于mysql,redis的(如果是,则可能是这两个没有在你的服务器上配置好或者刚才修改的信息出错了,例如账号,密码不对,或者远程连接未成功,导致本机无法远程访问等等),如果是关于8080端口,可能是由于你本机有程序以及占用了8080端口,这个基本上就不是什么问题,部署到服务器后只要服务器8080端口可用就行。接下来可以直接打包代码。

    在这里插入图片描述

  4. 打包后端代码jar包

    熟练java项目开发的,可以直接通过InteliJ IDEA或者eclipse软件打jar包。不熟悉的有第二种方法,是若依提供的。进入下载的项目文件夹中的bin目录下,直接双击执行package.bat,它会直接在项目中生成target文件夹,里面包含以及打包好的jar包。我们要使用的是ruoyi-admin文件夹下的target里的jar包。运行package.bat需要marven环境>=3.0,操作顺序如下图:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  5. 将打包好的jar包通过FinalShell上传至/opt/project 目录(project目录需要自己手动创建)

  6. 编写DockerFile 文件

vim Dockerfile
FROM openjdk:8
ADD ruoyi-admin.jar ruoyi-admin.jar
EXPOSE 8035
ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

DockerFile文件和jar包放在同一目录下

  1. 将项目挂载到docker镜像中 后面有个点. 千万不要忘记复制

    docker build -t ruoyi-admin.jar .
    
  2. 运行docker镜像

    docker run -d -p 8035:8035 --name ruoyi-admin ruoyi-admin
    
  3. 成功部署效果图
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yyILLu3f-1688291665834)(assets\若依登录.png)]

DockerFile文件和jar包放在同一目录下

  1. 将项目挂载到docker镜像中 后面有个点. 千万不要忘记复制

    docker build -t ruoyi-admin.jar .
    
  2. 运行docker镜像

    docker run -d -p 8035:8035 --name ruoyi-admin ruoyi-admin
    
  3. 成功部署效果图
    在这里插入图片描述

    在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐