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

本文涉及的产品
.cn 域名,1个 12个月
简介: 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都匹配不上才会进入/对应的匹配中来。


目录
相关文章
|
2天前
|
JavaScript 开发工具 git
大事件项目40---Vue代码里如何引入相对路径图片
大事件项目40---Vue代码里如何引入相对路径图片
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大学生心理健康诊断专家系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大学生心理健康诊断专家系统的详细设计和实现(源码+lw+部署文档+讲解等)
10 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大学生成绩管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大学生成绩管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
7 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大棚蔬菜管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大棚蔬菜管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
3 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大学生爱心互助代购网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大学生爱心互助代购网站的详细设计和实现(源码+lw+部署文档+讲解等)
4 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物中心信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物中心信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
2 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的宝鸡文理学院学生成绩动态追踪系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的宝鸡文理学院学生成绩动态追踪系统的详细设计和实现(源码+lw+部署文档+讲解等)
5 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物咖小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物咖小程序的详细设计和实现(源码+lw+部署文档+讲解等)
3 0
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的宠物救助管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的宠物救助管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
15 0
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的煤矿信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的煤矿信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
5 0