部署若依前端vue3后端SSM项目实战

这篇具有很好参考价值的文章主要介绍了部署若依前端vue3后端SSM项目实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境

前端部署在nginx 后端部署在tomcat

系统 前端服务器 后端服务器 前端项目架构 后端项目架构
win10 nginx1.22.1 tomcat9 vue3 ssm

linux 亲测! 环境同样适用。

部署

  1. 前端项目修改 项目下载地址 GIThub RuoYi-Vue3
    1. vite.config.js 基本不用动, 默认打包为文件夹名 dist , 不用dist可以自定义(我用的自定义)

Snipaste_2024-04-09_12-06-11.png

  1. 前端.env.production 修改VITE_APP_BASE_API = 'tomcat下webapps 下项目文件夹名'

image.png
tomcat下webapps 下项目文件夹名

  1. 后端项目配置 Gitee若依 / RuoYi-Vue
    1. 基本不用配; 只需修该数据 redis地址即可
    2. 后端war包

后端war包

  1. nginx配置文件 重点
    1. 部署前端, 直接丢到nginx根目下了, 也可自定义.

image.png

  1. 配置文件配置 nginx.conf service配置
server {
  listen       80;  # 监听80端口,即HTTP请求
  server_name  localhost;  # 服务器名称为localhost

  root  cookbook;  # 全局根目录为cookbook,即服务器根目录下的文件夹
  index index.html index.htm default.htm default.html;  # 全局默认的索引文件

# Vue Router 配置
location / {
  try_files $uri $uri/ @router;  # 尝试匹配URI,如果找不到,则转到@router定义的位置
  index index.html;  # 设置默认的索引文件
}

location @router {
  rewrite ^.*$ /index.html last;  # 重写URI为/index.html,并标记为最后处理,防止陷入循环
}

location /ruoyi-admin {
  proxy_pass   http://127.0.0.1:8080;  # 将请求转发到本地8080端口
}

# 错误页面处理
error_page   500 502 503 504  /50x.html;  # 定义500、502、503、504错误的处理页面为50x.html
location = /50x.html {
  root   html;  # 50x.html页面所在的目录为html
}
}

  1. win环境下 nginx启动关闭建议使用命令执行,这样配置生效比较容易
    1. 启动 C:\Users\xxx\Desktop\nginx-1.22.1>start nginx
    2. 重启 C:\Users\xxx\Desktop\nginx-1.22.1>nginx.exe -s reload
    3. 停止 C:\Users\xxxx\Desktop\nginx-1.22.1>nginx.exe -s stop

配置来源参考 wsAdmin 的个人博客

  1. tomcat配置不用修改,直接将war放到webapps目录下

效果

此时刷新页面 不报错 404
image.png

总结

前端部署在tomcat还是nginx上? 将前端部署在 Nginx 上通常是更好的选择.

  1. 静态文件服务: Nginx 专注于快速和有效地提供静态文件,例如 HTML、CSS、JavaScript 和图像文件。与之相比,Tomcat 是一个 Java 应用服务器,不如 Nginx 专注于处理静态文件效率高。
  2. 性能和资源利用: Nginx 是一个轻量级的服务器,具有高性能和低内存消耗。相比之下,Tomcat 是一个相对重量级的应用服务器,它可能会消耗更多的系统资源。
  3. 静态文件缓存和压缩: Nginx 提供了强大的缓存和压缩功能,可以帮助提高前端资源的加载速度和用户体验。
  4. 负载均衡和反向代理: 如果需要负载均衡、反向代理或缓存静态资源,Nginx 提供了更灵活和强大的功能。它可以作为反向代理,将请求转发到多个后端服务器,以实现负载均衡和高可用性。
  5. 安全性: Nginx 提供了丰富的安全特性,可以帮助保护静态资源免受各种网络攻击。

nginx的 location /ruoyi-admin{ proxy_pass... } 作用

  1. location /ruoyi-admin: 指定了匹配的 URI 路径,即只有当请求的 URI 以 /ruoyi-admin 开头时才会应用这个代理规则。例如 http://127.0.0.1:8080/ruoyi-admin
  2. proxy_pass http://127.0.0.1:8080;: 指定了代理的目标地址,即将请求转发到的目标服务器的地址和端口。在这里,所有匹配到 url + /ruoyi-admin 的请求将会被转发到本地的 8080 端口。这里的 http://127.0.0.1:8080 可以是任何有效的 HTTP 或 HTTPS 地址,代理将会将请求传递到这个地址上,并将响应返回给客户端。

$uri说明

image.png
$uri 指的是 http://localhost/index 的 /index

nginx请求过程案例说明

  1. 用户请求: 用户在浏览器中输入** http://localhost/index 。**
  2. Nginx监听端口80: Nginx监听到来自端口80的请求。
  3. 检查匹配的server_name: 因为请求中的 server_namelocalhost,所以这个server块匹配。
  4. 处理Vue Router配置: 由于请求是向SPA的前端路由发送的,Nginx会检查Vue Router的配置。
    • location / 部分用于处理大多数请求,其中 try_files 指令会尝试匹配"/index"文件,所以就找到了index.html,如果找不到,Nginx会尝试查找是否存在名为/index的文件夹, 再找不到则会重定向到Vue应用程序的入口点 index.html
    • 如果请求的"/index"能够在cookbook文件夹中查找文件,Nginx会直接返回该文件。
    • 如果找不到该"/index"对应的文件/文件夹,它会执行 @router 部分的操作。
  5. @router部分的处理: 当前的请求不是一个直接的文件路径,因此Nginx会将请求重写到Vue应用程序的入口点 index.html,这是Vue Router将接管路由的地方。
  6. 代理到后端Java应用程序: 如果请求的URI是 /ruoyi-admin 开头的,Nginx会将请求代理到后端的Java应用程序,代理地址为 http://127.0.0.1:8080
    • 在这个例子中,http://localhost/ruoyi-admin/dashboard 中的 /ruoyi-admin 部分会匹配到Nginx配置中的 location /ruoyi-admin 部分。
    • Nginx会将这个请求代理到 http://127.0.0.1:8080/dashboard
  7. 后端Java应用程序响应: 后端Java应用程序收到 /dashboard 的请求,并返回相应的数据或页面给Nginx。
  8. Nginx将响应返回给客户端: Nginx收到来自后端Java应用程序的响应后,将其返回给用户的浏览器。
  9. 用户看到响应: 最终,用户在浏览器中看到了相应的页面或数据。

详细解释 rewrite ^.*$ /index.html last;

  1. rewrite: 这是 Nginx 提供的一个指令,用于重写 URI。
  2. ^.*\(**: 这是一个正则表达式,匹配任意字符(**.***)并表示从开头(**^**)到结尾(**\))的字符串,即匹配任意 URI。
  3. /index.html: 这是指定的重写目标,即将匹配到的 URI 重写为 /index.html
  4. last: 这是一个标志,表示完成重写后,Nginx 将继续处理 URI。在这个具体的配置中,last 标志的作用是告诉 Nginx,如果这条重写规则匹配成功,那么不再继续查找其他的匹配规则,而是直接将重写后的 URI 交给后续的 Nginx 配置进行处理。
  5. 综合起来,这个 rewrite 指令的作用是将所有请求的 URI 都重写为 /index.html,这通常用于单页应用(SPA)的前端路由。具体地说,当用户访问一个不存在的路径时,Nginx 会将请求重写为 /index.html,然后返回给前端处理,由前端路由器(如 Vue Router 或 React Router)根据路由规则决定加载哪个页面。这样可以实现前端路由和页面渲染的逻辑,保持页面的单页应用体验。

index index.html; # 设置默认的索引文件

index index.html; 指令告诉 Nginx 在处理请求时,如果请求的 URI 是一个目录而不是具体的文件时,应该尝试返回哪个文件作为默认索引文件。例如,当用户访问 http://example.com/ 而不是具体的文件时,Nginx会尝试返回 index.html 文件作为默认索引文件。

404问题, 项目启动后刷新 404; 参考以上步骤.

image.png文章来源地址https://www.toymoban.com/news/detail-845683.html

到了这里,关于部署若依前端vue3后端SSM项目实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 企业级通用低代码开发平台——一二三应用开发平台发布1.0开源版本,前端vue3+element plus,框架vue-element-plus-admin,后端ssm+MybtaisPlus

    早些时候,也就是三月初的时候,定了一个长期计划,即再启程,研发应用开发平台(详见本专栏第一篇https://blog.csdn.net/seawaving/article/details/129334330)。 经过大概两个月的努力,低代码配置功能部分完成了雏形,并使用配置功能,将系统管理模块实现出来了,相当于进行了初

    2024年02月05日
    浏览(39)
  • vue 前端 + 若依(ruoyi)后端 实现国际化

    记录一下,前端使用vue,后端使用若依(ruoyi,基于spring-boot)实现页面,后端返回提示信息国际化 vue:2.6.12 vue-i18n:^8.27.2 安装vue-i18n,注:最新的交于该版本有差异,所以指定使用版本:8.27.2 添加国际化js文件:language.en_US.js 添加国际化js文件:language.zh_CN.js 添加i18n.js ma

    2024年02月12日
    浏览(26)
  • SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接

    系列文章: SpringBoot + Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot + Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现 SpringBoot + Vue前后

    2024年02月12日
    浏览(40)
  • 前端vue和node后端项目部署到云服务器(详解)

    前言:我是一名大三在校生,选修的专业是软件工程,然后主要学前端方向,作为一个前端程员,自己也想有自己的网站,然后被大家浏览,我觉得这是对自己能力的肯定,也是自我提升的一种方法,所以我学习了nodejs,利用nodejs作为项目的后端,然后结合前端最流行的框架

    2024年02月03日
    浏览(23)
  • mac 基于docker搭建若依项目前端(node、nginx),本地搭建若依项目后端,含试错记录

    先一句话总结一下,前后端调通的关键是 IP地址 。 最终项目环境结构:本地部署若依后端服务器,docker部署mysql、redis、node或nginx容器。通过node容器或nginx部署若依前端,并调用部署在本地的后端服务器。 声明:本文所涉及的问题点仅针对本文所处时间以及发布文章时所用的

    2024年02月02日
    浏览(24)
  • 前端vue3分享——项目封装axios、vite使用env环境变量

    大家好,我是yma16,本文分享关于前端vue3分享——项目封装axios、使用env环境变量。 该系列往期文章: csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板 认识vite_vue3 初始化项目到打包 什么是axios axios是一个流行的JavaScript库,用于在浏览器和Node.js环境中进行H

    2024年02月07日
    浏览(34)
  • vue3微信公众号商城项目实战系列(1)开发环境准备

    项目忙完,这次上新,写一个前端系列,采用vue3来开发一个微信公众号商城。 前言: 1. 微信公众号商城本质也是一个网站,由一个个网页组成,只不过这些网页运行在手机端,能响应手指的点击、长按、拖拽等操作。 2. 既然是网页,当然可以用3件套(js+html+css)来写,但象

    2023年04月14日
    浏览(64)
  • 若依前端Vue3模板——自定义主题+炫彩主题

    实现结果 实现步骤 默认主题的设置 文件位置: src/settings.js 布局设置 图标文件 文件位置: src/assets/images/blue.svg 复制同级的 light.svg 修改名称即可,将两个颜色替换为:#409eff 布局组件 文件位置: src/layout/components/Settings/index.vue template模板中添加控件如下 新增一个主题风格选

    2024年02月14日
    浏览(21)
  • Vite+Vue3项目如何获取环境配置,并解决前端跨域问题

    根目录新建.env.development和.env.production文件 package.json配置启动参数 vite命令启动项目时,指定mode参数,加载vite.config.ts文件。 配置代理 在vite.config.ts中配置代理 配置vite-plugin-html 通过vite-plugin-html组件,可以将配置文件中的数据,绑定到index.html中,可以实现不同环境的页面ti

    2024年02月19日
    浏览(29)
  • 创建网站教程:服务器环境搭建(MySQL+Jdk+Nginx...),前后端项目部署(技术栈:SSM+Vue),域名+备案【全网最简单】

    【如有建站方面的需求欢迎 添加微信 ,接私单 】 2024/4/26记,本文写于1年前,当时建站经验不够丰富,文章逻辑混乱,近期重新编写,希望能帮助更多小伙伴,搭建属于自己的网站。 我主要以我部署的个人网站:www.pbjlovezjy.com 为例,来讲解如何搭建一个网站,源码如果需要

    2024年04月26日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包