话不多说直接上干货
部署对象:
ruoyi-vue springboot+vue
需要的环境:
jdk
docker
mysql
redis
nginx
1 docker
对于不熟悉docker或者没有安装docker的可以看 02-Docker安装 里面说的很详细
2 jdk的安装
一、在线下载JDK wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm 二、 添加执行权限: chmod +x jdk-8u131-linux-x64.rpm 三、执行rpm进行安装 rpm -ivh jdk-8u131-linux-x64.rpm 四、查看此时JDK是否安装成功 java -version 五、查看JDK的安装路径 命令:cd /usr/java ls查看是否存在jdk1.8.0_131 六、配置JDK环境变量 1、编辑 /etc/profile 命令:vim /etc/profile 2、进行环境配置 命令:i进入编辑模式 3、编辑环境变量 //在文件末尾追加如下信息: jexport JAVA_HOME=/usr/java/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} 4、强制保存并退出 命令::wq! 5、使资源文件生效 命令:source /etc/profile 最后:查看JDK安装情况 1、使用javac命令,不会出现command not found
3 MySQL的安装(本次基于docker安装的,不用docker也行,只是docker要方便一些,不用就删除,比较方便)
docker 安装mysql5.7版本 docker pull mysql:5.7 docker run -d -p 3306:3306 \ --privileged=true \ -v /app/mysql/log:/var/log/mysql \ -v /app/mysql/data:/var/lib/mysql \ -v /app/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ --name mysql \ mysql:5.7 在/app/mysql/conf下新建 my.cnf,通过容器卷同步给mysql实例,解决中文乱码问题: [client] default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8 重启mysql容器,使得容器重新加载配置文件: docker restart mysql
4 redis安装就用单节点了 后面集群部署有时间再写,
实际应用版Redis 配置文件、数据文件都和容器卷进行映射。 步骤: 宿主机创建目录/app/redis 在/app/redis下创建文件redis.conf,主要修改以下几项配置 # 开启密码验证(可选) requirepass 123 # 允许redis外地连接,需要注释掉绑定的IP # bind 127.0.0.1 # 关闭保护模式(可选) protected-mode no # 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败 daemonize no # 开启redis数据持久化, (可选) appendonly yes 即最后的配置文件为: 启动docker容器:(因为要使用自定义的配置文件,所以需要指定容器运行的命令为redis-server 容器内配置文件路径) docker run -p 6379:6379 --name redis6.2.6 --privileged=true \ -v /data/dockerData/redis/conf/redis.config:/etc/redis/redis.config \ -v /data/dockerData/redis/data:/var/lib/redis \ -v /data/dockerData/redis/logs:/logs \ -d redis:6.2.6 redis-server /etc/redis/redis.config 验证Redis的安装情况 docker exec -it 容器id /bin/bash redis-cli -p 6379 auth 123
5 nginx的安装
1、下载nginx 镜像 docker pull nginx 1.1、查看镜像 docker images # 创建挂载目录 mkdir -p /app/nginx/conf mkdir -p /app/nginx/log mkdir -p /app/nginx/html # 生成容器 docker run --name nginx -p 9001:80 -d nginx # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /app/nginx/conf/nginx.conf # 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /app/nginx/conf/conf.d # 将容器中的html文件夹复制到宿主机 docker cp nginx:/usr/share/nginx/html /app/nginx # 直接执行docker rm nginx或者以容器id方式关闭容器 # 找到nginx对应的容器id docker ps -a # 关闭该容器 docker stop nginx # 删除该容器 docker rm nginx # 删除正在运行的nginx容器 docker rm -f nginx docker run \ -p 9003:80 \ --name nginx \ -v /app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /app/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /app/nginx/log:/var/log/nginx \ -v /app/nginx/html:/usr/share/nginx/html \ -d nginx:latest
基本的环境安装就到这里了后续就是项目的打包运行
ruoyi-vue 地址 RuoYi: 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
git拉取代码 git clone https://gitee.com/y_project/RuoYi.git 前后端代码都在 这里就不多说课有问题可以看官网的说明
下载到本地打包
会得到 dist.zip ruoyi-admin.jar 上传到liunx中
修改nginx的配置
主要就是修改 nginx.conf default.conf
在nginx.conf 加上
upstream ruoyi-server {
# upstream是关键字必须有,后面的server_pools是upstream集群组的名字,可自定义名称,调用时就用这个名字。
server 192.168.200.129:9222 weight=5;
server 192.168.200.129:9111 weight=10;
# server关键字是固定的,后面可以接域名或IP。如果不指定端口,默认是80端口。weight代表权重,数值越大被分配的请求越多。
}
完整的:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream ruoyi-server { # upstream是关键字必须有,后面的server_pools是upstream集群组的名字,可自定义名称,调用时就用这个名字。 server 192.168.200.129:9222 weight=10; server 192.168.200.129:9111 weight=20; # server关键字是固定的,后面可以接域名或IP。如果不指定端口,默认是80端口。weight代表权重,数值越大被分配的请求越多。 } include /etc/nginx/conf.d/*.conf; }
在default.conf加上
server { listen 8099; server_name 110.41.42.252; # 替换为你的域名或IP地址 # 前端配置 location / { root /home/nicong/ng/html/dist; index index.html; try_files $uri $uri/ /index.html; } # 后端配置 location /prod-api/ { proxy_pass http://ruoyi-server/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
完整的:
server { listen 80; listen [::]:80; server_name localhost; #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_pass http://ruoyi-server/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } #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; #} }
要重启nginx配置才会生效
docker ps
docker restart nginx容器id
docker ps 查看nginx情动情况
部署2个后台服务
随便建2个目录
mkdir server1
mkdir server2
将jar包cp到新建的目录
分别运行命令:(jvm 的哪些启动参数后续再有时间单独说明吧)
java -Dname=ruoyi9111 -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -jar ruoyi-admin.jar --server.port=9111 > ruo.log 2>&1 &
java -Dname=ruoyi9222 -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -jar ruoyi-admin.jar --server.port=9222 > ruo.log 2>&1 &
查看jar包启动情况
ps -ef|grep ruoyi
在页面访问: 你的liunx端口加上nginx开放的端口
我的是http://192.168.200.129:9003/


然后看看负载均衡 两边都有日志
本次的部署顺利完成了