服务器部署结构

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. jq里验证插件的自定义方法Jquery.validator.addMethod()示例

    最近写验证的时候感觉原生的验证谢了一遍又一遍,就想到了“不要重复造轮子,学会管理自己的工具库”这句名言,于是尝试用jq的validator. 用过又发现需要自定义方法去验证,于是去查官网,写了Jque ...

  2. Loadrunner11中webservice协议脚本总结

    Loadrunner11中webservice协议脚本总结 简介     webservices协议是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接,其中最基 ...

  3. Could not autowire. No beans of 'xxxx' type found的错误

    在Idea的spring工程里,经常会遇到Could not autowire. No beans of 'xxxx' type found的错误提示.但程序的编译和运行都是没有问题的,这个错误提示并 ...

  4. @Component, @Repository, @Service的区别

    注解 含义 @Component 最普通的组件,可以被注入到spring容器进行管理 @Repository 作用于持久层 @Service 作用于业务逻辑层 @Controller 作用于表现层(s ...

  5. mysql:mysql is neither service nor target!?(suse12 sp2 )

    今天想在自己的虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql. 1.service mysql start; 报错:mysql is neither service nor t ...

  6. git(三) 使用github

    1.创建仓库 ① 注册github账户,登录后,点击"New respository ". ② 在新页面中,输入项目的名称,勾选'readme.md',点击'create repo ...

  7. K2 BPM获评“表现强劲”_2019 Forrester 报告_全球领先的工作流引擎

    3月12日,在Forrester Research发布的报告<Forrester Wave:2019年第一季度广泛部署数字流程自动化(DPA)>中,K2获评“表现强劲”. 此次共有10项评 ...

  8. idea找不到tools.jar下的内容的解决方法

    今天学习javac编译原理时,发现找不到tools.jar. 解决办法:将D:\Program Files\Java\jdk1.8.0_151\lib目录下的tools.jar复制到D:\Progra ...

  9. shell脚本实现git和svn统计log代码行

    实现的功能 git 根据传入的三个参数:起始统计日期.结束统计日期.git仓库地址. 脚本统计的是git仓库内的所有分支的log信息. 脚本统计的是指定时间段内.每一个提交人指定的git地址的所有分支 ...

  10. cookie路径问题

    昨天在开发过程中用到cookie,在销毁该$.cookie('flag',null)时发现又新生成了一个同名的值为null但路径不相同的cookie 原来在设置cookie时没有给他设置路径所以该co ...