> 文章列表 > RuoYi若依项目部署实战

RuoYi若依项目部署实战

RuoYi若依项目部署实战

环境

  • OS: Amazon Linux 2 x86_64
  • Host: c5.2xlarge
  • Kernel: 5.10.173-154.642.amzn2.x86_64

mysql

root密码yourpasswd@2023,数据库名ruoyi,端口3306


下面是详细的部署过程。

准确工作

主要是安装redismysql5.7,nginx,JDK1.8以下过程仅供参考。不同的发行版本会略有不同。

redis6.2.11 安装

项目中使用redis做为缓存。版本要求:Redis >= 3.0。

# 安装redis
yum install redis
# 启动服务
systemctl start redis
# 服务设置开机启动
systemctl enable redis

校验是否安装成功,可以运行

redis-cli

如下返回值说明是成功了!

[root@ip-172-31-34-78 ec2-user]# redis-cli
127.0.0.1:6379>

安装出来的版本为6.2.11符合要求。

mysql 5.7安装

  1. 下载 MySQL yum包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
  1. 安装MySQL源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
  1. 升级Public key
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  1. 安装MySQL服务端,需要等待一些时间
yum install mysql-server
  1. 启动MySQL
systemctl start mysqld.service
  1. 检查是否启动成功
systemctl status mysqld.service
  1. 获取临时密码,MySQL5.7为root用户随机生成了一个密码
grep 'temporary password' /var/log/mysqld.log 

这里的我临时密码是*gMSdnc#Z8u_

  1. 通过临时密码登录MySQL,进行修改密码操作
mysql -uroot -p*gMSdnc#Z8u_

使用临时密码登录后,不能进行其他的操作,否则会报错,这时候我们进行修改密码操作

  1. 修改密码
    这里我设置的密码为yourpasswd@2023 可自行修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpasswd@2023';
  1. 授权其他机器远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd@2023' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
  1. 开启开机自启动
    先退出mysql命令行,然后输入以下命令。
systemctl enable mysqld
systemctl daemon-reload
  1. 设置MySQL的字符集为UTF-8,令其支持中文
vim /etc/my.cnf

改成如下,然后保存

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysql]
default-character-set=utf8[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-storage-engine=INNODB
character_set_server=utf8symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
  1. 重启一下MySQL,令配置生效
service mysqld restart
  1. 测试连接
mysql -uroot -pyourpasswd@2023

如果可以正常连接,基本没有什么问题了。

nginx

安装nginx

yum install -y nginx
# 启动服务
systemctl start nginx
# 查看服务状态
systemctl status nginx
# 服务设置开机启动
systemctl enable nginx

https证书设置

具体操作可参考:
https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

这里以backend-admin.ruoyi.cn为例,其他几个域名操作一样。

生成证书

acme.sh --issue -d backend-admin.ruoyi.cn --nginx

copy证书

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

  1. 创建一个目录用于保存证书文件
mkdir -p /etc/nginx/cert/
  1. 安装证书
acme.sh --install-cert -d backend-admin.ruoyi.cn \\
--key-file       /etc/nginx/cert/backend-admin.ruoyi.cn.key  \\
--fullchain-file /etc/nginx/cert/backend-admin.ruoyi.cn.pem \\
--reloadcmd     "service nginx force-reload"

(一个小提醒, 这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload)

其他的域名:
ruoyi.cn

acme.sh --issue -d ruoyi.cn --nginxacme.sh --install-cert -d ruoyi.cn \\
--key-file       /etc/nginx/cert/ruoyi.cn.key  \\
--fullchain-file /etc/nginx/cert/ruoyi.cn.pem \\
--reloadcmd     "service nginx force-reload"

hw-auth-v1.ruoyi.cn

acme.sh --issue -d hw-auth-v1.ruoyi.cn --nginx
acme.sh --install-cert -d hw-auth-v1.ruoyi.cn \\
--key-file       /etc/nginx/cert/hw-auth-v1.ruoyi.cn.key  \\
--fullchain-file /etc/nginx/cert/hw-auth-v1.ruoyi.cn.pem \\
--reloadcmd     "service nginx force-reload"

站点nginx 配置

/etc/nginx/conf.d 目录下保存以下文件

  • backend-admin.ruoyi.cn.conf
  • ruoyi.cn.conf
  • hw-auth-v1.ruoyi.cn.conf
    分别对应3个不同的域名。

backend-admin.ruoyi.cn.conf

server {listen 443 ssl;server_name backend-admin.ruoyi.cn;index index.html index.htm;ssl_certificate /etc/nginx/cert/backend-admin.ruoyi.cn.pem;ssl_certificate_key /etc/nginx/cert/backend-admin.ruoyi.cn.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root /var/www/ruoyi/;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:8180/;}
}
server {listen 80;server_name backend-admin.ruoyi.cn;return 301 https://$host$request_uri;
}

ruoyi.cn.conf

server {listen 443 ssl;server_name ruoyi.cn;index index.html index.htm;ssl_certificate /etc/nginx/cert/ruoyi.cn.pem;ssl_certificate_key /etc/nginx/cert/ruoyi.cn.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root /var/www/ruoyim/;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:8180/;}
}
server {listen 80;server_name ruoyi.cn;return 301 https://$host$request_uri;
}

hw-auth-v1.ruoyi.cn.conf

server {listen 443 ssl;server_name hw-auth-v1.ruoyi.cn;index index.html index.htm;ssl_certificate /etc/nginx/cert/hw-auth-v1.ruoyi.cn.pem;ssl_certificate_key /etc/nginx/cert/hw-auth-v1.ruoyi.cn.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root /var/www/hwauth/;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:8180/;}
}
server {listen 80;server_name hw-auth-v1.ruoyi.cn;return 301 https://$host$request_uri;
}

配置完成后,可以运行

service nginx force-reload

使配置生效。

jdk1.8

从oracle官网下载后解压,并配置环境变量就可以了。如下:

#JAVA_HOME
export JAVA_HOME=$HOME/.soft/JDK/jdk1.8.0_331
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
PATH=$JAVA_HOME/bin:$PATH

数据库初始化

进入mysql的命令行,如下:

mysql -uroot -pyourpasswd@2023
  1. 创建用户
CREATE DATABASE `ruoyi` CHARACTER SET UTF8;
  1. 执行初始化脚本
use ruoyi;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
source /home/ruoyi/ruoyi.sql;

前端项目部署

前端的部署目录在/var/www

  • ruoyi 对应 backend-admin.ruoyi.cn
  • ruoyim对应ruoyi.cn
  • hwauth 对应hw-auth-v1.ruoyi.cn

这里有个注意点,这些目录更新以后,要保证nginx有访问权限。如果没有权限可以通过以下命令设置权限:

chmod -R 777 /var/www/

后端项目部署

程序保存路径如下:

/home/ruoyi/projects/ruoyi/ruoyi-admin.jar

运行以下命令就可以启动后端服务:

nohup java -jar ruoyi-admin.jar > ruoyi-admin-log.out  2>&1 &

查看日志:

tail -f ruoyi-admin-log.out

参考

https://cloud.tencent.com/developer/article/1886339
https://blog.csdn.net/qq_48403611/article/details/122763479

西河女性网