前后端部署+nginx配置

news2024/11/17 5:57:09

文章目录

    • 概要
      • 1、脚手架安装
      • 2、项目打包部署
      • 3、配置nginx
      • END

概要

内容主要包括部署前端项目,nginx安装配置,以及后端项目的打包

1、脚手架安装

vue init webpack
在这里插入图片描述
项目运行(默认端口8080)

npm run dev
在这里插入图片描述
如果前后端分离项目,发出axiox请求实现跨域时,需要配置proxy代理
在这里插入图片描述

/**
 *  例如这个前端微服务项目访问后端接口时需要带/teacher 路径,而后端服务普遍是/member路径[前端通过端口号来区分后端项目,不能说给这个后端服务请求路径上添加上/tercher]
 *  这个时候,可通过配置proxy代理,在实现跨域的功能外,实现路径重写
 *  如下 后端有个接口如/member/query/getTeacherList
 *  前端通过访问
 *  http://localhost:9500/teacher/member/query/getTeacherList 
 *  代理到 http://localhost:8081/member/query/getTeacherList
 */
    proxyTable: {
      "/teacher": {
        // 目标代理服务器地址
        target: 'http://localhost:8081',
        logLevel: 'debug',
        // 开启代理,本地创建一个虚拟服务器 允许跨域
        changeOrigin: true,
        pathRewrite: {'^/teacher': '/'},
      },
    },
    host: 'localhost', 
    port: 9500, 

2、项目打包部署

  • 前端项目打包

​ npm run build

部署:将生成的dist文件夹拷贝至linux文件目录 如/etc/dist【配置nginx要用到】

  • 后端项目打包【生成的jar包文件在target目录下】

前提条件:pom配置打包工具

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

① 通过mvn命令打包

mvn clean install -Dmaven.test.skip=true
-Dmaven.test.skip=true #跳过test模块编译和打包 避免打包出错
#或者
mvn clean install -DskipTests
- DskipTests #不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下

② 通过idea配置打包(最简单)
在这里插入图片描述

  • ③ pom配置 打包跳过测试【测试模块正常编译】

    • 配置pom
    <build>
        <plugins>
            <!-- maven 打包时跳过测试 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>   
    
    • 点击install按钮【可见上图】
    #上述控制台会输出
    [INFO] --- maven-surefire-plugin:3.0.0-M7:test (default-test) @ demo1 ---
    [INFO] Tests are skipped.  #test跳过成功
    

    部署:将jar包拷贝至linux服务器上,运行

     cd jar包路径
     java -jar jar包名称 2>&1 & #后台运行
    

3、配置nginx

  • 安装nginx

    su root
    yum install nginx
    #查看nginx是否安装成功
    nginx -v
    
  • 配置nginx

    nginx相关文件位置如下:

    /usr/sbin/nginx:主程序
    /etc/nginx:配置文件所在路径
    /usr/share/nginx:静态文件所在路径
    /var/log/nginx:日志文件所在路径
    # 可通过whereis nginx命令查看:
    nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz
    
    vim /etc/nginx/nginx.conf #修改以下内容
    
    server {
            listen       9000; #监听端口
            server_name  localhost;
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
    			root /etc/dist; #前端文件放置的文件路径
    			index /index.html; #访问路径下的文件入口
    		}
    	#请求转发配置
    		location ~/yujiankai/{ #匹配所有带有yujiankai的路径
    			proxy_pass http://服务器ip地址:8001;#转发服务器ip及端口
    		}
    		error_page 404 /40x.html;1
               location = /40x.html {
           		root html;
    	    }
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
    			root html;
            }
    	  }
    
    • 重启nginx

      nginx -t // 检验配置是否正确
      nginx -s reload // 重新加载修改的配置
      service nginx restart // 重新启动
      
  • 访问nginx监听端口9000

服务器ip地址:9000 #跳转/etc/dist/index.html

【额外】利用docker安装nginx

前提:

docker pull nginx #拉去镜像
docker run --name=mynginx -p 9000:80 -d nginx #启动nginx
docker exec -it mynginx /bin/bash #进入nginx容器
cd /etc/nginx #进入配置文件目录
#docker容器可看作微型linux系统,剩余操作类似上述操作

docker run参数说明

--name 容器名称
-p 挂载端口 服务器9000挂载到容器的80端口(nginx默认端口)
-d 后台运行

注意:配置端口时,记得网关放行

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Vue+el-form+form-validate实现管理端登录接口联调前准备工作实战

前言 这是《Vue + SpringBoot前后端分离项目实战》专栏的第7篇博客,感谢你能从成千上万篇博客中打开这一篇,和我一起学习前端开发实战知识,让我们一起开始吧。 目录 前言 一、上节回顾和本节介绍 1. 上节回顾

【可视化开发】echarts配置项——修改tooltip默认样式

修改tooltip默认样式 在可视化开发中我们通常会遇到修改tooltip样式问题&#xff0c;下面分享给大家代码片段和最终呈现效果 tooltip: {//鼠标悬浮框的提示文字trigger: "axis",axisPointer: {// 坐标轴指示器配置项。type: "none", // line 直线指示器 …

Vue3.0ElementPlus<input输入框自动获取焦点>

文章目录前言一、input-focus事件&#xff1f;二、使用步骤1.给input 设置ref 属性2.引入ref和nextTick3.在dialog打开事件中触发前言 记录一下自己最近开发vue3.0的小小问题~~ 最近在做项目时&#xff0c;dialog弹框事件需定位input焦点&#xff0c;方便用户可直接输入。原理…

【vue3】组合式API之setup()介绍与reactive()函数的使用

>&#x1f609;博主&#xff1a;初映CY的前说(前端领域) ,&#x1f4d2;本文核心&#xff1a;setup()概念、 reactive()的使用 【前言】vue3作为vue2的升级版&#xff0c;有着很多的新特性&#xff0c;其中就包括了组合式API&#xff0c;也就是是 Composition API。学习组合…

vue + gojs 实现拖拽 流程图

一、流程图效果 最近一段时间在研究go.js,它是一款前端开发画流程图的一个插件&#xff0c;也是一个难点&#xff0c;要说为什么是难点&#xff0c;首先&#xff0c;它是依赖画布canvas知识开发。其次&#xff0c;要依赖于内部API开发需求&#xff0c;开发项目需求的时候就要花…

js逆向爬取某音乐网站某歌手的歌曲

js逆向爬取某音乐网站某歌手的歌曲一、分析网站1、案例介绍2、寻找列表页Ajax入口&#xff08;1&#xff09;页面展示图。&#xff08;2&#xff09;寻找部分歌曲信息Ajax的token。&#xff08;3&#xff09;寻找歌曲链接&#xff08;4&#xff09;获取歌曲名称和id信息3、寻找…

vue-plugin-hiprint vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用

vue-plugin-hiprint vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用安装相关依赖安装 vue-plugin-hiprintJQuery安装 打印客户端引入依赖打印 html 内容 - 简单使用根据模版打印 - 简单使用以下内容 和上面demo 没关系 &#xff01;&#xff01;&#xff01;&…

使用videjs+vue2+elementui自定义播放器控件

一、安装项目所需依赖 videojs依赖&#xff1a; npm install --save-dev video.js elementui依赖&#xff08;这个图方便就不按需引入了&#xff09;&#xff1a; npm i element-ui -S 二、main.js修改 增加以下几行&#xff1a; import videojs from video.js import e…

成功解决:下载的谷歌浏览器,打开却是“2345浏览器”,方法亲测有效

今天打开谷歌浏览器使用&#xff0c;浏览器界面显示的2345浏览器&#xff0c;难道谷歌把2345收购了&#xff1f;应该不能&#xff0c;上网查找问题原因才发现&#xff0c;原来的谷歌首页是被劫持了。&#xff08;如果迫切解决问题&#xff0c;直接拉到底找方法&#xff09; 试了…

前端必备的谷歌浏览器JSON可视化插件:JSON-Handle

功能简介: 日常开发过程中,对接后台返回的数据接口时,数据格式常常是各种json格式字符串,在netWork里面查看十分不便,需要在网上找一个json格式化的工具再查看,然后再取数据字段,然后绑定到页面上,十分不便,推荐这么一款前端开发的浏览器插件工具给大家使用。 返回数…

【React-Hooks进阶】useState回调函数的参数 / useEffect发送网络请求/ useRef / useContext

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;React专栏 上篇文章初步学习了Hooks的基础知识 今天来深入学习Hooks的一些扩展知识 感兴趣的小伙伴一起来看看吧~&#x1f91e; 文章目录useState -回调函数的参数使用场景语法语法规…

el-switch

目录 在element ui中el-switch开关组件具有先改变开关值再传值的特点。&#xff08;先改后传&#xff09; 1、触发change事件时 2、绑定disabled属性写三元表达式时 3、解决办法 在element ui中el-switch开关组件具有先改变开关值再传值的特点。&#xff08;先改后传&#xf…

cron表达式 详解

corn表达式是&#xff1a;由若干数字、空格、符号按一定的规则&#xff0c;组成的一组字符串&#xff0c;从而表达时间的信息。 好像和正则表达式有点类似哈&#xff0c;都是一个字符串表示一些信息。Cron 表达式生成器&#xff1a; https://www.smart-tools.cn/cron简介Cron 表…

基于Java+MySQL 实现(Web)日程管理系统【100010222】

基于Java的日程管理系统开发 摘要 日程管理在日常生活中是十分普通的一件事情&#xff0c;人们无论在生活中还是工作中都会有大大小小、各种各样的事情安排&#xff0c;如果仅仅靠纸张或者自己记录这些事情&#xff0c;往往会遗忘。针对这样的痛点&#xff0c;本文提供了日程…

HTML小图标的使用(无需下载图标源码)

我们在浏览一个网页中&#xff0c;会遇到很多有趣的小图标&#xff0c;这些小图标与访问者形成了友好的互动&#xff0c;所以我们在开发中都会适当插入一些生动有趣的图标来吸引访问者。插入图标的网站有很多&#xff0c;我这里以阿里巴巴图标库&#xff08;iconfont-阿里巴巴矢…

Div标签里放img和span标签实现垂直水平居中

正常默认布局 代码实现&#xff1a; <div style"width: 400px; height:400px; background-color:blueviolet"><img style"width: 80px; height: 80px;" src"./picture.png"><span style"color:white;">我是span标…

Vue3 使用MD5加密(清晰明了)

概述 最近在想做个cloud项目,gitee上找了个模板项目&#xff0c;前端使用到vue3 typeScript、Element Plus、Vue Router、Pinia、Axios、i18n、Vite等技术&#xff0c;最近使用到vue3 MD5加密&#xff0c;顺便学习一下&#xff0c;在此总结一下&#xff0c;若有不足之处&…

《EDA前端软件开发工程师面试指南》

2023届EDA领域校招总结&#xff0c;完结撒花&#xff01;&#xff01;&#xff01; 目录 前言 一、EDA公司介绍 二、项目面试 1.自我介绍 2.项目深入 3.专业经验 4.成果和技能 5.对面试官有什么问题 三、C面试 1、高频考点 2、其他知识点 3、算法题 四、逻辑综合面…

【前端代码实例】使用HTML5+CSS3+JavaScript制作一个响应式的后台管理系统~带侧边导航栏仪表盘功能

bilibili在线视频演示地址: 【前端代码实例】使用HTML5+CSS3+JavaScript制作一个响应式的后台管理系统~带侧边导航栏仪表盘功能 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta…

前端已死?后端已亡?弯弯绕绕,几分真几分假

前段时间&#xff0c;我在掘金分享了一篇GPT-4 性能文章&#xff0c;也许是过于强大带来的威胁性&#xff0c;引来评论区的排队哀嚎&#xff08;如下图&#xff09;&#xff0c;所以“前端已死&#xff0c;后端已亡”这个概念真的成立吗&#xff1f;本文着重探讨前端。 前端和后…