
一、若依经典版war部署1.1 整体架构1.2 服务器规划操作环境Rocky9主机名角色IP 地址核心软件db-mysqlMySQL 数据库服务器10.0.0.160MySQL 8.xdb-redisRedis 缓存服务器10.0.0.140Redis 6.x / 7.xruoyi-java1应用服务器10.0.0.120JDK 8 Tomcat 91.3 服务器配置1.3.1 基础配置# 1.配置主机名每台服务器执行对应的hostnamectl set-hostname db-mysql hostnamectl set-hostname db-redis hostnamectl set-hostname ruoyi-java1# 2.设置IPnmcli connection modify ens160 ipv4.method manual\ipv4.addresses10.0.0.160/24\ipv4.gateway10.0.0.2\ipv4.dns8.8.8.8,114.114.114.114\autoconnectyes# 依次为10.0.0.140 10.0.0.120# 3.配置主机名解析所有服务器都执行sudotee-a/etc/hostsEOF10.0.0.160 db-mysql10.0.0.140 db-redis10.0.0.120 ruoyi-java1EOF# 验证解析ping-c1db-mysqlping-c1db-redisping-c1ruoyi-java1# 4.配置yum源阿里云镜像sudosed-es|^mirrorlist|#mirrorlist|g\-es|^#baseurlhttp://dl.rockylinux.org/$contentdir|baseurlhttps://mirrors.aliyun.com/rockylinux|g\-i/etc/yum.repos.d/rocky*.repo# 安装并替换 EPEL 源sudodnf-yinstallepel-releasesudosed-es|^#baseurlhttps://download.example/pub|baseurlhttps://mirrors.aliyun.com|g\-es|^metalink|#metalink|g\-i\/etc/yum.repos.d/epel*# 5.安装基础软件包dnf-yinstallvimbash-completionwgetnet-tools lrzsztargit# 6.关闭防火墙和SELinux简化实验环境systemctl disable--nowfirewalld setenforce0sed-i-e/^SELINUX/cSELINUXdisabled/etc/selinux/config1.3.2 MySql部署# 1.克隆若依项目获取SQL文件)JDK 8 使用sprinboot2gitclone-bspringboot2 https://gitee.com/y_project/RuoYi.git# 2.安装MySQLdnfinstallmysql-server-ysystemctlenablemysqld--now# 3.创建用户mysql-urootEOF CREATE DATABASE ruoyi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER ruoyi10.0.0.% IDENTIFIED BY 123456; GRANT ALL PRIVILEGES ON ruoyi.* TO ruoyi10.0.0.%; FLUSH PRIVILEGES; EOF# 4.导入ruoyi的初始数据根据实际文件名称[wangchendb-mysql ~]$lsRuoYi/sql/ quartz.sql ruoyi.html ruoyi.pdm ry_20260319.sql mysql-uroot ruoyiRuoYi/sql/ry_20260319.sql mysql-uroot ruoyiRuoYi/sql/quartz.sql# 5. 验证数据导入是否成功从应用服务器连接测试在ruoyi-java1上执行dnf-yinstallmysql mysql-uruoyi-p-hdb-mysql ruoyi-eshow tables;-u指定用户名-p输入密码(后面没有跟密码值执行后会交互式提示输入带密码时中间不要空格)-e执行 SQL 语句后退出-h指定服务器主机名1.3.3 Redis部署# 1.安装Redissudodnfinstallredis-y# 2.配置Redis允许远程访问 设置密码sudosed-i/^bind 127.0.0.1/cbind 0.0.0.0/etc/redis/redis.confsudosed-i/^# requirepass/crequirepass 123456/etc/redis/redis.conf-i修改原文件内容c替换/更改整行bind 0.0.0.0监听所有网段# 3.启动Redissudosystemctlenableredis.service--now# 4. 验证服务是否可用从应用服务器连接测试在ruoyi-java1上执行sudodnf-yinstallredis# 带明文密码输入redis-cli-hdb-redis-p6379-a123456ping# 不带明文密码需要输入redis-cli-hdb-redis-p6379-apingAUTH123456#认证密码# 输出PONGredis-cliRedis 命令行客户端工具-p 6379指定 Redis 端口6379 是默认端口)-a指定认证密码需要空格1.4 部署应用服务器1.4.1 安装JDK和Tomcat# 1.安装JDKJdk8兼容tomcat9sudodnfinstall-yjava-1.8.0-openjdk-devel[wangchenruoyi-java1 ~]$java-versionopenjdk version1.8.0_504OpenJDK Runtime Environment(build1.8.0_504-b01)OpenJDK64-Bit Server VM(build25.504-b01, mixed mode)[wangchenruoyi-java1 ~]$ javac-versionjavac1.8.0_504# 2.安装Tomcatwgethttps://dlcdn.apache.org/tomcat/tomcat-9/v9.0.121/bin/apache-tomcat-9.0.121.tar.gzsudotarxaf apache-tomcat-9.0.121.tar.gz-C/usr/local/# 创建一个软链接目的是简化路径引用和方便版本管理sudoln-s/usr/local/apache-tomcat-9.0.121/ /usr/local/tomcat# 3.创建专用服务用户权限最小化安全sudouseradd-r-s/sbin/nologin tomcat# -r 创建系统用户 -s 指定登陆shell(不登陆)sudochown-Rtomcat:tomcat /usr/local/tomcat/# 4.创建systemd服务文件sudotee/etc/systemd/system/tomcat.serviceEOF/dev/null [Unit] DescriptionApache Tomcat Web Application Container Afternetwork.target [Service] Typeforking Usertomcat Grouptomcat EnvironmentJAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk EnvironmentCATALINA_HOME/usr/local/tomcat EnvironmentCATALINA_BASE/usr/local/tomcat EnvironmentCATALINA_PID/usr/local/tomcat/temp/tomcat.pid ExecStart/usr/local/tomcat/bin/startup.sh ExecStop/usr/local/tomcat/bin/shutdown.sh Restarton-failure RestartSec10 [Install] WantedBymulti-user.target EOFTypeforking: 告诉 systemdstartup.sh会 fork 出子进程后退出父进程。systemd 通过 PID 文件跟踪真正的 Tomcat 主进程。这是 Tomcat 传统启动脚本的固定搭配JAVA_HOME: 指定 JDK 路径startup.sh 依赖此变量找到 JavaCATALINA_HOME/BASE: Tomcat 安装目录和实例目录单实例时两者相同CATALINA_PID: ⭐ 关键 与 Typeforking 配合systemd 通过读取此文件获取 Tomcat 主进程 PID从而正确判断服务状态、执行停止操作ExecStart: 启动命令ExecStop: 停止命令systemctl stop时调用优雅关闭Restarton-failure: 仅在非正常退出崩溃、信号终止等时自动重启手动stop不会触发重启RestartSec10: 重启前等待 10 秒避免频繁重启风暴执行systemctl enable tomcat后Tomcat 会在系统进入multi-user.target标准多用户模式相当于传统 runlevel 3时自动启动# 5.启动Tomcat并验证是否启动sudosystemctl daemon-reloadsudosystemctlenable--nowtomcat.servicesudosystemctl status tomcat.servicesudonetstat-tnlp|grep8080# 6.验证访问curlhttp://ruiyi-java1:8080/#windows配置hosts解析后浏览器正常访问tomcat首页需带:808010.0.0.120 ruoyi.wangchen.com1.4.2 编译打包若依war包# 1.克隆若依项目gitclone-bspringboot2 https://gitee.com/y_project/RuoYi.gitcdRuoYi/# 2.数据库配置连接连接MySQLsudovimruoyi-admin/src/main/resources/application-druid.yml# 3.Redis配置连接连接Redissudovimruoyi-admin/src/main/resources/application.yml# 4. 修改pom.xml打包成WAR注意默认是JARsudovimruoyi-admin/pom.xml# 5. 修改启动类让Spring Boot支持WAR部署sudovimruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java# :%d删除全文后粘贴package com.ruoyi;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.builder.SpringApplicationBuilder;importorg.springframework.boot.web.servlet.support.SpringBootServletInitializer;SpringBootApplication public class RuoYiApplication extends SpringBootServletInitializer{Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application){returnapplication.sources(RuoYiApplication.class);}public static void main(String[]args){SpringApplication.run(RuoYiApplication.class, args);System.out.println((♥◠‿◠) 若依启动成功 ლ(´ڡლ) );}}# 6.安装maven并打包sudodnf-yinstallmavenjava-versionopenjdk version17.0.20.12026-08-18 LTS OpenJDK Runtime Environment(Red_Hat-17.0.20.1.1-1)(build17.0.20.11-LTS)OpenJDK64-Bit Server VM(Red_Hat-17.0.20.1.1-1)(build17.0.20.11-LTS, mixed mode, sharing)# 安装maven自动绑定Java,自动下载jdk17不兼容tomcat9# 如何确认你的 WAR 包需要哪个 JDK!-- 若依项目根 pom.xml --java.version1.8/java.version!-- 或 --maven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target# 修改全局环境变量Java指向8版本sudotee/etc/profile.d/java.shEOF export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export PATH$JAVA_HOME/bin:$PATH EOFsource/etc/profile.d/java.sh# 立即生效# 版本正确java-versionopenjdk version1.8.0_504OpenJDK Runtime Environment(build1.8.0_504-b01)OpenJDK64-Bit Server VM(build25.504-b01, mixed mode)# 修改日志文件路径sudomkdir-p/usr/local/tomcat/logs/ruoyisudochown-Rtomcat:tomcat /usr/local/tomcat/logs/ruoyised-is|property namelog.path value.* /|property namelog.path value/usr/local/tomcat/logs/ruoyi /|ruoyi-admin/src/main/resources/logback.xml# 打包跳过测试mvn clean package-Dmaven.test.skiptrueclean清理阶段。删除上一次构建生成的target目录确保本次构建是从零开始避免旧文件残留导package打包阶段。将项目编译、测试如果没跳过、打包成可部署的构件若依项目通常会生成.jar或.war文件。-Dmaven.test.skiptrue彻底跳过整个测试阶段。-Dmaven.test.skiptrue与-DskipTests的区别参数是否编译测试代码是否执行测试构建速度-Dmaven.test.skiptrue不编译不执行最快-DskipTests会编译不执行较快# 打包成功后WAR包位置lsruoyi-admin/target/ruoyi-admin.war ruoyi-admin/target/ruoyi-admin.war1.4.3 部署WAR包到Tomcat# 1. 查看Tomcat webapps目录sudols/usr/local/tomcat/webapps/# 2. 将WAR包复制到Tomcat的webapps目录sudocpruoyi-admin/target/ruoyi-admin.war /usr/local/tomcat/webapps/# 3. Tomcat会自动解压并部署sudols/usr/local/tomcat/webapps/ docs examples host-manager manager ROOT ruoyi-admin ruoyi-admin.war# 4. 观察日志确认部署成功sudotail-f/usr/local/tomcat/logs/catalina.out1.5 验证部署打开浏览器ruoyi.wangchen.com:8080/ruoyi-admin访问二、若依Vue版部署JAR包2.1 整体架构2.2 服务器规划层级主机名IP地址组件端口作用接入层ruoyi-web110.0.0.113Nginx80/443反向代理、静态资源应用层ruoyi-java110.0.0.120依JAR8080业务逻辑缓存层db-redis10.0.0.140Redis6379会话管理、缓存数据层db-mysql10.0.0.160MySQL3306数据持久化2.3 服务器配置2.3.1 基础配置# 1.配置主机名hostnamectl set-hostname ruoyi-web1# 2.设置IPnmcli connection modify ens160 ipv4.method manual\ipv4.addresses10.0.0.113/24\ipv4.gateway10.0.0.2\ipv4.dns8.8.8.8,114.114.114.114\autoconnectyes# 2.配置主机名解析# 3.配置yum源阿里云镜像# 4. 安装基础软件包# 5. 关闭防火墙和SELinux简化实验环境# 以上操作步骤同上“1.3服务器部署”2.3.2 MySQL部署# 1.删除之前的Ruoi文件rm-rfRuoYi/# 2.克隆若依Vue版项目gitclone https://gitee.com/y_project/RuoYi-Vue.git# 3.安装MySQL已安装# 4.创建数据库和用户需要删除若依经典版数据库文件创建ruoyi-vue库及获取权限给ruoyimysql-uroot-p-edrop database ruoyimysql-urootEOF CREATE DATABASE IF NOT EXISTS ruoyi-vue DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON ruoyi-vue.* TO ruoyi10.0.0.%; FLUSH PRIVILEGES; EOF# 5.导入vue版的数据mysql-uroot ruoyi-vueRuoYi-Vue/sql/ry_20260417.sql mysql-uroot ruoyi-vueRuoYi-Vue/sql/quartz.sql# 6.从应用服务器连接测试mysql-uruoyi-p-hdb-mysql ruoyi-vue-eshow tables2.3.3 Redis部署# 1. 安装Redisdnfinstallredis-y# 2. 配置Redis允许远程访问 设置密码sed-i/^bind 127.0.0.1/cbind 0.0.0.0/etc/redis/redis.confsed-i/^# requirepass/crequirepass 123456/etc/redis/redis.conf# 3. 启动Redissystemctlenableredis--now# 4. 从应用服务器连接测试在ruoyi-java1上执行dnf-yinstallredis redis-cli-hdb-redis-p6379-aYANGge123ping# 输出PONG# 同上1.3.3操作步骤2.4 后端部署2.4.1 基于RuoYi-Vue构建JAR包# 1.克隆若依Vue项目gitclone https://gitee.com/y_project/RuoYi-Vue.gitcdRuoYi-Vue# 2.修改数据库配置vimruoyi-admin/src/main/resources/application-druid.yml# 3.修改Redis配置vimruoyi-admin/src/main/resources/application.yml# 4.创建部署目录和服务用户sudouseradd-r-s/sbin/nologin ruoyisudomkdir-p/opt/ruoyi-vue/app /var/log/ruoyi-vue /opt/ruoyi-vue/config /opt/ruoyi-vue/uploadsudochown-Rruoyi:ruoyi /opt/ruoyi-vue /var/log/ruoyi-vue# 5.修改日志目录sed-is|property namelog.path value.* /|property namelog.path value/var/log/ruoyi-vue /|ruoyi-admin/src/main/resources/logback.xml# 修改全局环境变量Java指向17版本(确保Java版本是17)java-versionsudotee/etc/profile.d/java.shEOFexportJAVA_HOME/usr/lib/jvm/java-17-openjdkexportPATH$JAVA_HOME/bin:$PATHEOFsource/etc/profile.d/java.sh# 立即生效# 6.安装Mavensudodnf-yinstallmaven mvn clean package-DskipTests# 7.部署到目录sudocpruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi-vue/app/2.4.2 创建外部配置文件(生产环境推荐)# 1. 创建外部配置sudotee/opt/ruoyi-vue/config/application.ymlEOF spring: profiles: active: prod,druid EOFsudotee/opt/ruoyi-vue/config/application-prod.ymlEOF spring: datasource: druid: master: url: jdbc:mysql://db-mysql:3306/ruoyi-vue?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: ruoyi password: 123456 data: redis: host: db-redis port: 6379 password: 123456 ruoyi: profile: /opt/ruoyi-vue/upload logging: file: name: /opt/ruoyi-vue/logs/ruoyi.log level: com.ruoyi: info org.springframework: warn EOF2.4.3 创建Systemd服务生产部署# 1. 创建Systemd服务文件sudotee/etc/systemd/system/ruoyi-vue.serviceEOF [Unit] DescriptionRuoYi Vue Backend Service Afternetwork.target [Service] Typesimple Userruoyi Groupruoyi WorkingDirectory/opt/ruoyi-vue ExecStart/usr/bin/java \ -Xms512m \ -Xmx1024m \ -XX:HeapDumpOnOutOfMemoryError \ -XX:HeapDumpPath/opt/ruoyi-vue/logs/heapdump.hprof \ -Dfile.encodingUTF-8 \ -jar /opt/ruoyi-vue/app/ruoyi-admin.jar \ --spring.config.additional-locationfile:/opt/ruoyi-vue/config/ \ --spring.profiles.activeprod,druid SuccessExitStatus143 Restartalways RestartSec10 StandardOutputjournal StandardErrorjournal EnvironmentTZAsia/Shanghai [Install] WantedBymulti-user.target EOF# 2. 启动服务sudosystemctl daemon-reloadsudosystemctlenableruoyi-vue--now# 3. 查看状态sudosystemctl status ruoyi-vue-ljournalctl-uruoyi-vue-f2.5 部署前端若依RuoYi-Vue前端是典型的 Vue 项目部署核心步骤是安装Node.js → 打包 → 上传dist → Nginx配置。2.5.1 安装Node.js 18若依推荐sudodnf module reset nodejs-y#更新模块流数据sudodnf moduleenablenodejs:18-y#指定模块流nodejs版本为18sudodnfinstallnodejsnpm-y#使用模块流下载nodejs npmnode-vnpm-v2.5.2 克隆若依Vue版并打包前端gitclone https://gitee.com/y_project/RuoYi-Vue.gitcdRuoYi-Vue/gitcheckout-bruoyi392 v3.9.2# 基于标签 v3.9.2 创建新分支新版ruoyi中删除了ui文件cdRuoYi-Vue/ruoyi-ui/# 配置npm镜像源加速npmconfigsetregistry https://registry.npmmirror.com# 安装依赖并打包生产环境npminstallnpmrun build:prod2.5.3 查看打包产物lsdist/# favicon.ico html index.html index.html.gz robots.txt static styles# 4. 安装Nginxsudodnfinstall-ynginxsudosystemctlenablenginx--now# 5. 部署前端文件sudomkdir-p/opt/ruoyi/distsudocp-rdist/* /opt/ruoyi/dist/# 6. 设置权限chown-Rnginx:nginx /opt/ruoyi/distchmod-R755/opt/ruoyi/dist2.5.4 Nginx配置sudotee/etc/nginx/conf.d/ruoyi-vue.confEOF upstream ruoyi_backend { server ruoyi-java1:8080; keepalive 32; } server { listen 80; server_name ruoyi.wangchen.com; client_max_body_size 100m; # 前端静态资源 location / { root /opt/ruoyi/dist; index index.html; try_files $uri $uri/ /index.html; } # 后端 API 代理 location /prod-api/ { proxy_pass http://ruoyi_backend/; proxy_http_version 1.1; proxy_set_header Connection ; 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_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # 上传文件路径 location /profile/ { alias /opt/ruoyi/uploadPath/; } } EOF# 验证并重载Nginxsudonginx-tsudosystemctl reload nginx2.6 验证部署修改本地hosts文件将ruoyi.wangchen.com解析到ruoyi-web1服务器IP10.0.0.113然后访问http://ruoyi.wangchen.com三、若依vue后端扩容3.1 整体架构3.2 服务器规划层级主机名IP地址组件端口作用接入层ruoyi-web110.0.0.113Nginx80/443反向代理、静态资源应用层ruoyi-java110.0.0.120若依JAR8080业务逻辑应用层ruoyi-java210.0.0.121若依JAR8080业务逻辑应用层ruoyi-java310.0.0.122若依JAR8080业务逻辑缓存层db-redis10.0.0.120Redis6379会话管理、缓存数据层db-mysql10.0.0.160MySQL3306数据持久化3.3 服务器配置3.3.1 基础配置# 1.配置主机名hostnamectl set-hostname ruoyi-java2 hostnamectl set-hostname ruoyi-java3# 2.设置IPnmcli connection modify ens160 ipv4.method manual\ipv4.addresses10.0.0.121/24\ipv4.gateway10.0.0.2\ipv4.dns8.8.8.8,114.114.114.114\autoconnectyes10.0.0.122# 2.配置主机名解析# 3.配置yum源阿里云镜像# 4. 安装基础软件包# 5. 关闭防火墙和SELinux简化实验环境# 以上操作步骤同上“1.3服务器部署”3.3.2 安装Java环境sudodnf-yinstalljava-17-openjdkjava-versionopenjdk version17.0.20.12026-08-18 LTS OpenJDK Runtime Environment(Red_Hat-17.0.20.1.1-1)(build17.0.20.11-LTS)OpenJDK64-Bit Server VM(Red_Hat-17.0.20.1.1-1)(build17.0.20.11-LTS, mixed mode, sharing3.3.3 复制jar包到新后端节点# 1. ruoyi-java2 ruoyi-java3准备相应服务用户及目录sudouseradd-r-s/sbin/nologin ruoyisudomkdir-p/opt/ruoyi-vue/app /var/log/ruoyi-vue /opt/ruoyi-vue/config /opt/ruoyi-vue/uploadsudochown-Rruoyi:ruoyi /opt/ruoyi-vue /var/log/ruoyi-vue# 2. 复制 ruoyi-admin.jar 到 ruoyi-java1 ruoyi-java2sudoscp/opt/ruoyi-vue/app/ruoyi-admin.jar wangchenruoyi-java3:/home/wangchen/sudoscp/opt/ruoyi-vue/app/ruoyi-admin.jar wangchenruoyi-java3:/home/wangchen/sudocpruoyi-admin.jar /opt/ruoyi-vue/app/3.3.4 创建外部配置文件同上3.3.5 创建Systemd服务同上3.4 配置 Nginx 负载均衡ruoyi-web1sudovim/etc/nginx/conf.d/ruoyi-vue.conf3.4 测试# 1. 停止 ruoyi-java1#访问正常# 2. 停止 ruoyi-java2#访问正常# 3. 停止 ruoyi-java3#访问正常#当后端所有节点均停止产生502网关错误四、实现HTTPS4.1 证书申请# 1.环境准备sudodnfinstall-yopenssl ca-certificates# 2. 创建目录并生成根CAsudomkdir-p/opt/cacd/opt/casudoopenssl req-x509-new-nodes-newkeyrsa:4096-keyoutca.key-outca.crt\-days3650-sha256-subj/CCN/STBeijing/LBeijing/OMageEdu/OUIT/CNMageEdu Root CAchmod400ca.key# 3. 生成私钥 CSRSAN写 *.wangchen.comsudoopenssl req-new-nodes-outwangchen.csr-keyoutwangchen.key\-subj/CCN/STBeijing/LBeijing/OMageEdu/OUIT/CN*.wangchen\-addextsubjectAltNameDNS:*.wangchen.com,DNS:wangchen.com# 4. 用原有的 ca.crt 和 ca.key 签发证书sudoopenssl x509-req-inwangchen.csr-CAca.crt-CAkeyca.key\-CAcreateserial-outwangchen.crt-days365-copy_extensionscopy# 5. 验证 SAN 是否生效openssl x509-inwangchen.crt-text-noout|grep-A3Subject Alternative Name4.2 配置Nginxsudovim/etc/nginx/conf.d/proxy-lb.conf upstream yangge{#ip_hash;server ruoyi-java1:8080weight1max_fails3fail_timeout30s;server ruoyi-java2:8080weight1max_fails3fail_timeout30s;server ruoyi-java3:8080weight1max_fails3fail_timeout30s;}# HTTP 跳转 HTTPS server{listen80;server_name www.wangchen.com wangchen.com;return301https://$host$request_uri;}server{listen443ssl;server_name www.wangchen.com wangchen.com;ssl_certificate /opt/ca/wangchen.crt;ssl_certificate_key /opt/ca/wangchen.key;client_max_body_size 100m;# 前端静态资源 location /{root /opt/ruoyi/dist;index index.html;try_files$uri$uri/ /index.html;}# 后端 API 代理 location /prod-api/{proxy_pass http://ruoyi_backend/;proxy_http_version1.1;proxy_set_header Connection;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_connect_timeout 60s;proxy_send_timeout 60s;proxy_read_timeout 60s;}# 上传文件路径 location /profile/{alias/opt/ruoyi/uploadPath/;}}sudonginx-tsudosystemctl reload nginx4.3 windows客户端访问Windows安装ca.crt证书hosts文件解析10.0.0.113 wangchen.com www.wangchen.com浏览器访问4.4 Linux访问curl www.wangchen.com-I查看头信息-k跳过证书验证访问 https-L跟随重定向