发布spring cloud + vue项目
服务器部署结构
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项目的更多相关文章
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
- 优秀的Spring Cloud开源项目整理推荐
无论是对于初学者,还是有一定工作经验的程序员来讲,Spring Cloud开源项目都是一笔宝贵的财富.下面给大家整理了十个优秀的开源项目,分别是spring-cloud-examples.spaasc ...
- Spring Cloud Netflix项目进入维护模式
任何项目都有其生命周期,Spring Could Netflix也不例外,官宣已进入维护模式,如果在新项目开始考虑技术选型时要考虑到这点风险,并考虑绕道的可能性. 原创: itmuch IT牧场 这 ...
- 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目
前言 伴随着随着微服务概念的不断盛行,与之对应的各种解决方案也层出不穷.这毕竟是一个信息大爆发的时代,各种编程语言大行其道,各有各的优势.但是有一点未曾改变,那就是他们服务的方式,工作的时候各 ...
- 【Spring Cloud + Vue 有来商城】研发小组开发规范全方位梳理
项目演示 后端 Spring Cloud实战 | 第一篇:Windows搭建Nacos服务 Spring Cloud实战 | 第二篇:Spring Cloud整合Nacos实现注册中心 Spring ...
- 创建Spring Cloud聚合项目
使用maven创建单一项目的时候通常用不到聚合项目,创建spring cloud项目时候,由于下面都是一个一个微服务,每个服务对应一个项目,这就需要用到聚合项目,方便对依赖和项目之间的关系进行管理,使 ...
- Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目
前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...
- 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)
本文介绍Spring Boot.Vue .Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库.按照本文进行项目部署,不迷路. 1. 前言 典型的软件开发,经过" ...
- Spring Boot +Vue 项目实战笔记(三):数据库的引入
这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码. 一.引入数据库 之前说过数据库的采用是 MySQL,算是比较主流的选择,从性能和体量等方面都比较优秀,当然也有一些弊端,但数据库不是我们 ...
随机推荐
- 小T牛 绿色版 18.08.0100
百度网盘 链接:https://pan.baidu.com/s/1g2PIMBR8YAdz5skH5ogFhw 密码:3o4k 小T牛 小T牛 绿色版 18.08.0100 意见反馈:qq(邮箱):6 ...
- mysql中用limit 进行分页有两种方式
代码示例:语句1: select * from student limit 9,4 语句2: slect * from student limit 4 offset 9 // 语句1和2均返回表stu ...
- yml多环境配置
配置独立各自的环境 注:如果需要修改环境测试,只需要修改spring: profiles: active: “环境名” spring: profiles: active: prd --- #开发环境配 ...
- 安装 yaml-cpp,MP4V2
一.在ubuntu上安装yaml-cpp的过程: git clone https://github.com/jbeder/yaml-cpp.git进入yaml-cpp目录后,mkdir buildcd ...
- laravel5.5首次使用php artisan migrate注意问题:
1.在app/Providers/AppServiceProvider.php中设置字符串默认长度:(不进行这一步,执行php artisan migrate会报错,同时创建的表会有所缺失) use ...
- [NOIP2014D2]
T1 Problem 洛谷 Solution 枚举那个点的位置,再O(n)扫一遍求出覆盖的公共场合的数量... 所以时间复杂度为O(128 * 128 * n) Code #include<cm ...
- SharedPreference映射Java类
package com.overlook.weagree.util; import android.app.Activity; import android.content.Context; impo ...
- vmware克隆虚拟机后进行网络配置
1.首先将虚拟机网络模式选为NAT模式 2.点击高级,查看MAC地址 然后编辑:/etc/udev/rules.d/70-persistent-net.rules 其中teh是网卡的名称,每一次克隆新 ...
- Python的进程与线程--思维导图
Python的进程与线程--思维导图
- canvas初体验
利用画布,绘制随机大小,颜色,位置 方框<!DOCTYPE html> <html lang="en"> <head> <meta cha ...