Nginx(三)vue和springboot项目分开部署实战

简介: Nginx(三)vue和springboot项目分开部署实战

一、简介



Nginx 动静分离:简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为以下两种:


  1. 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
  2. 另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。


Nginx动静分离


二、环境准备



1. vue项目准备


  1. 修改http.js的后端访问域名
//接口域名
export const http_ori = process.env.NODE_ENV === 'production' ? '' : 'http://192.168.43.243:8080'


  1. 打包(vscode)
cnpm run build


2. Springboot项目准备


  1. 将项目打包成war包
  2. 将ROOT.war上传到tomcat容器所对应的容器数据卷中
  3. 重启tomcatdocker restart tomcat


3. Nginx配置文件配置


  1. 创建nginx实例
[root@localhost ~]# docker run -d -p 81:80 --name nginx1 -v /opt/infosec/nginx1/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/infosec/nginx1/static:/etc/nginx/static nginx


  1. 将nginx配置文件上传并覆盖/opt/infosec/nginx1/conf/nginx.conf
  2. /opt/infosec/nginx1/static创建web文件夹,将vue打包目录dist文件下的所有文件上传到web目录
  3. 修改nginx.conf配置文件


http {
    include       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  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    # 1. 可以通过配置upstream多个后端服务,实现一个前端对应多个后端服务
 upstream javacfox.com {。
  server 192.168.43.243:8080;
  #server 192.168.43.243:8081;
 }
    server {
        # 2. 配置监听端口
        listen       80;
        # 3. 配置域名
        server_name  192.168.43.243;
        # 4. 配置vue项目静态文件访问地址
     location / {
            root   /etc/nginx/static/web; # 对应主机容器数据卷web
            index  index.html index.htm;
        }
        # 5. 配置后端springboot项目负载均衡和反向代理
     location /api {
            root   html;
            proxy_pass http://javacfox.com;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
  1. 重启nginxdocker restart nginx


三、测试



1. 访问静态页面



静态页面访问


2. 通过页面访问后端接口


访问后端接口


总结:从测试结果可以看出,该方法已经实现了前后端分离部署,并且可以同时配置多个后端服务器,实现了静态资源和动态资源的分离。


注意:一个server可以对应多个location,location的匹配机制和顺序都是有规则的,/api:我后端所有接口都以/api开头,所以可以用来做区分匹配;/:全匹配,当所有location都匹配不上才会进入/对应的匹配中来。


目录
相关文章
|
人工智能 自然语言处理 JavaScript
通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
通义灵码基于自然语言需求,快速生成完整Vue组件。例如,用Vue 2和JavaScript实现贪吃蛇游戏:包含键盘控制、得分系统、游戏结束判定与Canvas动态渲染。AI生成的代码符合规范,支持响应式数据与事件监听,还能进阶优化(如增加启停按钮、速度随分数提升)。传统需1小时的工作量,使用通义灵码仅10分钟完成,大幅提升开发效率。操作简单:安装插件、输入需求、运行项目即可实现功能。
687 4
 通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
894 7
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1301 1
|
11月前
|
前端开发 安全 Java
基于springboot+vue开发的会议预约管理系统
一个完整的会议预约管理系统,包含前端用户界面、管理后台和后端API服务。 ### 后端 - **框架**: Spring Boot 2.7.18 - **数据库**: MySQL 5.6+ - **ORM**: MyBatis Plus 3.5.3.1 - **安全**: Spring Security + JWT - **Java版本**: Java 11 ### 前端 - **框架**: Vue 3.3.4 - **UI组件**: Element Plus 2.3.8 - **构建工具**: Vite 4.4.5 - **状态管理**: Pinia 2.1.6 - **HTTP客户端
1458 4
基于springboot+vue开发的会议预约管理系统
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
596 0
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
634 6
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
819 3
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
1096 2
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
1115 2
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
608 2