服务器部署结构

1、服务器访问直接访问NGINX

2、静态资源访问, nginx读取本地文件夹

3、API接口路由, nginx把以api开头的访问都路由到业务逻辑服务器。

nginx配置

   client_max_body_size 100m; # 上传文件大小限制
server {
listen 80;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; # 静态资源位置 (这里的dist文件夹,即vue打包的默认文件名)
location / {
root c:/nginx/dist;
index index.html index.htm;
} # 业务逻辑路由到真实服务器
location /api {
proxy_pass http://192.168.0.161:40001;
}
# .....
}

启动

cd /usr/sbin

./nginx

重启

更改配置重启nginx

kill -HUP 主进程号或进程号文件路径

或者使用

cd /usr/sbin

./nginx -s reload

Vue资源打包

axios 跨域访问问题

跨域问题分两种情况, 分别是开发者模式与生产环境跨域访问。

所谓开发者模式是指, 直接用npm run dev 运行vue程序, 包含了各种调试信息。

生产者环境是指, 通过npm run build把vue项目程序进行打包, 生成一个干净的发布内容。

1、在进行跨域访问时, 我们用axios进行访问服务器如下

this.$axios.post(process.env.API_HOST + '/api/app/download', {id : id}).then((result) => {
console.log(result)
}).catch((err) => {
console.log(err);
});

这里POST的路径为process.env.API_HOST + '/api/app/download'的绝对路径。

2、在开发者模型式下的配置

在config/dev.env.js文件中,添加如下内容

module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
API_HOST:'""'
})

在config/index.js文件中,添加路由表proxyTable

module.exports = {
dev: {
// .....这里省略
proxyTable: {
'/api': {
target: "http://localhost:40001", // 这里需要访问的跨域服务器地址
changeOrigin: true
}
},
//....这里省略
}
}

这样开者模式下的配置就完成了

3、生产环境下的配置

在config/prod.env.js文件中,添加如下内容

module.exports = {
NODE_ENV: '"production"',
API_HOST:' "http://localhost" '
}

API_HOST就是指定需要跨域访问的服务器。

然后,在config/index.js文件中, 添加和编辑打包配置信息, 找到build字段,添加如下内容

  build: {
env: require('./prod.env'),
assetsPublicPath: './',
productionSourceMap: false,
...
}

这样就可以使用npm run build进行打包vue项目。默认输出到../dist这个位置。 前面的nginx静态资就是这个文件夹内容。

Spring Cloud打包

1、打包 jar文件包

在pom.xml文件中,指定打包类型, 即添加jar

    <groupId>com.example</groupId>
<artifactId>svc-gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

执行命令mvn build打包, 生产包,如上配置生成svc-gateway-0.0.1-SNAPSHOT.jar

添加配置,取消tomcat的依赖, 告诉pom.xml配置已经有了。

在pom.xml文件内容中添加以下内容

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

注意

有时打包找到不依赖module, 此时需要把根项目clean + install.

2、运行程序

java -jar svc-gateway-0.0.1-SNAPSHOT.jar --server.port=40001

更换发布端口为90

在config/prod.env.js文件中,添加如下内容

module.exports = {
NODE_ENV: '"production"',
API_HOST: '"http://localhost:90"'
}

nginx配置端口

   server {
listen 90;

然后,通过npm run build来打包vue重新发布即可。

总结

访问请来了, 如果是http://localhost/api/xxxxx,就会被nginx路由到配置poxyPass对应的位置;否则会直接指定的location下面打找文件。

发布spring cloud + vue项目的更多相关文章

  1. 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚

    新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...

  2. 优秀的Spring Cloud开源项目整理推荐

    无论是对于初学者,还是有一定工作经验的程序员来讲,Spring Cloud开源项目都是一笔宝贵的财富.下面给大家整理了十个优秀的开源项目,分别是spring-cloud-examples.spaasc ...

  3. Spring Cloud Netflix项目进入维护模式

    任何项目都有其生命周期,Spring Could Netflix也不例外,官宣已进入维护模式,如果在新项目开始考虑技术选型时要考虑到这点风险,并考虑绕道的可能性. 原创: itmuch  IT牧场 这 ...

  4. 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目

    前言     伴随着随着微服务概念的不断盛行,与之对应的各种解决方案也层出不穷.这毕竟是一个信息大爆发的时代,各种编程语言大行其道,各有各的优势.但是有一点未曾改变,那就是他们服务的方式,工作的时候各 ...

  5. 【Spring Cloud + Vue 有来商城】研发小组开发规范全方位梳理

    项目演示 后端 Spring Cloud实战 | 第一篇:Windows搭建Nacos服务 Spring Cloud实战 | 第二篇:Spring Cloud整合Nacos实现注册中心 Spring ...

  6. 创建Spring Cloud聚合项目

    使用maven创建单一项目的时候通常用不到聚合项目,创建spring cloud项目时候,由于下面都是一个一个微服务,每个服务对应一个项目,这就需要用到聚合项目,方便对依赖和项目之间的关系进行管理,使 ...

  7. Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目

    前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...

  8. 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)

    本文介绍Spring Boot.Vue .Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库.按照本文进行项目部署,不迷路. 1. 前言 典型的软件开发,经过" ...

  9. Spring Boot +Vue 项目实战笔记(三):数据库的引入

    这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码. 一.引入数据库 之前说过数据库的采用是 MySQL,算是比较主流的选择,从性能和体量等方面都比较优秀,当然也有一些弊端,但数据库不是我们 ...

随机推荐

  1. C语言博客作业02——循环结构

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了循环结构,在之前学习分支结构的时候就涉及到了循环结构中的for循环,这周的又新学了while和do- ...

  2. 性能测试遭遇TPS抖动问题

    目前性能测试组正在对独立秒杀进行性能压测,性能抖动特别厉害. 由于独立秒杀的接口大多数是经过volicity渲染过的页面和数据的整合,所以在压测的时候有很多volicity的错误.初步判定,感觉是vo ...

  3. 阅读github上的项目源码

    1.基础资料 函数手册,类库函数手册2.和程序相关的专业资料 高数,linux文件系统3.相关项目的文档资料4.留备份,构造可运行的环境,找开始的地方 main(),5.分层次阅读,写注解,编程思想, ...

  4. C#UDP广域网,局域网通信-原理分析

    一.UDP局域网通信. 这个比较简单,关于局域网中的2台或者更多的计算机之间的UDP通信,网络上一大把,直接复制粘贴就可以使用,原理也非常简单.所以,本文不做详细介绍. 二.UDP广域通信(包括路由器 ...

  5. 基于DES加密的服务端分析

    此程序建立了一个TCP服务端,端口号为10010,之后accept等待连接,如果接受到连接,那么就发送一些欢迎信息,以及提示信息---发送quit退出. 之后不停地调用recv,如果接受到数据,那么判 ...

  6. Go项目中beego的orm使用和gorm的使用

    按照beego官方文档练习ORM的使用,model创建完始终没找到办法创建表,于是使用gorm翻译文档和官方文档进行了练习,使用起来还是比较简单. 安装: 方法一:Terminal打开,go get ...

  7. [HNOI2019]校园旅行

    题意 https://www.luogu.org/problemnew/show/P5292 思考 最朴素的想法,从可行的二元组(u,v)向外拓展,及u的出边所指的颜色与v的出边所指的颜色若相同,继续 ...

  8. 使用VirtualBox把IMG文件转换为VDI文件

    使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...

  9. Ubuntu中搭建强化学习平台(使用anaconda管理Python并安装tensorflow、opencv)

    首先介绍一下anaconda,annoconda是一个开源的Python发行版本,里面集成了python.conda等多个科学包及其依赖项.安装完成之后,就可以使用conda版本管理器进行管理,可以让 ...

  10. Idea中:No converter found for return value of type: class java.util.ArrayList:Json格式转换问题

    1.在搞SSM框架的时候,前端发送请求后,显示如下错误. @ResponseBody注解进行返回List<对象>的json数据时出现 nested exception is java.la ...