話不多說直接上干貨
部署對象:
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/


然后看看負載均衡 兩邊都有日志
本次的部署順利完成了