Nginx实战教程二

一.介绍

本文介绍SPRINGBOOT+VUE项目配置API服务器的两种情况 + NGINX 配置VUE项目

二.vue项目和后端api接口不在同一台服务器

如果打包好的vue项目应用(dist) 和后端 api 接口没有运行在同一个主机上

  • 此时需要在开发环境下将 API 请求代理到 API 所在服务器。通过配置 vue.config.js 中的 devServer.proxy
devServer: {port: 13888, // 生产环境前端启动端口proxy: {'/api': {target: 'http://xxx.xxx.x.xxx:13889', // 后端服务器地址ws: true, // proxy websocketschangOrigin: true, // 是否允许跨域pathRewrite: { // 重定向"^/api": ""}}}
}
  • 在生产环境中可通过NGINX配置代理服务器解决vue项目请求跨域问题
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#gzip  on;server {listen       13888;server_name  http://129.129.16.40; # 前端项目部署服务器地址location / {root   html;index  index.html index.htm;}# 后端api接口反向代理地址location /api/ {proxy_pass http://10.8.1.152:13889/;}# 前端location /diagnosis {alias D:/nginx/web/sod/h5/; #vue项目打包完生成的disttry_files $uri $uri/ $uri/index.html $uri.html /index.html; # 解决前端的路由问题# 允许跨域请求的来源,可以使用通配符或具体域名add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow_Credentials' 'true';add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';}}
}

三.vue项目和后端api接口同再一台服务器(重点)

如果打包好的前端应用(dist) 和后端 API 服务器运行在同一个主机上,但是只有一个端口做了内网映射

  • 前端网络请求地址
fetchData() {// 发送请求获取后端接口数据uni.request({url: 'http://139.126.16.40:13888/api/drugstore/getScore',method: 'GET',header: {token: token},data: {storeCode: drugStoreCode},success: (res) => {this.totalScore = res.data.data.physicalExaminationScore}})
}
  • nginx配置
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#gzip  on;server {listen       13888;server_name  http://139.126.16.40; # 公网地址location / {root   html;index  index.html index.htm;}# 后端api接口反向代理地址location /api/ {proxy_pass http://10.8.1.152:13889/; # 内网地址}# 前端location /diagnosis {alias D:/nginx/web/sod/h5/; #vue项目打包完生成的disttry_files $uri $uri/ $uri/index.html $uri.html /index.html; # 解决前端的路由问题# 允许跨域请求的来源,可以使用通配符或具体域名add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow_Credentials' 'true';add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';}}
}
  • 测试一(先用内网地址测试后端接口是否调通)

在这里插入图片描述

  • 测试二(再用公网地址测试反向代理是否成功)
    在这里插入图片描述

注意:同时服务器要配置端口入站和出站规则(简单的说 出站就是你访问外网 入站就是外网访问你)

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

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

相关文章

基于ssm实验室课程管理系统源码和论文

idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 环境: jdk8 tomcat8.5 摘 要 随着科学实验规模的不断扩大,实验室课程数量的急剧增加,有关实验室课程的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有…

HBase 使用JDK21

HBase 使用JDK21 启动zookeeper和hadoop 创建软件目录 mkdir -p /opt/soft cd /opt/soft下载软件 wget https://dlcdn.apache.org/hbase/2.5.6/hbase-2.5.6-hadoop3-bin.tar.gz解压 hbase tar -zxvf hbase-2.5.6-hadoop3-bin.tar.gz修改 hbase 目录名称 mv hbase-2.5.6-had…

一则广告,一个故事,这就我选择学习计算机专业的两个原因

还记得当初自己为什么选择计算机? 现在回想起来,当初驱使自己选择学习计算机专业的原因,一共有两个: 一、一则长城电脑的广告。 上个世纪80年代,我还在读小学,当时在中央电视台上经常播放着的长城电脑的一则…

Abaqus基础教程--胶合失效仿真

胶合是电子行业中常见的连接方式,abaqus中常用cohesive单元或者cohesive接触两种方法进行胶合失效仿真,这两种方式操作方法有所差别,但结果一般大同小异。 本例模型比较简单,建模过程从略,使用静态分析,使…

【GAMES101】三维变换

games101的第四节课讲了三维变换和观察变换,我们这里先记录一下三维变换的知识,后面再讲观察变换 齐次坐标下的三维变换 类似于解决之前二维变换平移的问题,三维变换下用齐次坐标通过增加一个维度来表示,第四个维度为1表示这是个…

无敌是多么的寂寞!一本书讲透Java多线程!吊打多线程从原理到实践!

摘要 互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流量洪峰,背后都离不开多线程技术的支持。在数字化转型的过程中,高并发、高性能是衡量系统性能的核心指标&#xff…

vue2+electron桌面端一体机应用

vue2+electron项目 前言:公司有一个项目需要用Vue转成exe,首先我使用vue-cli脚手架搭建vue2项目,然后安装electron 安装electron 这一步骤可以省略,安装electron-builder时会自动安装electron npm i electron 安装electron-builder vue add electron-builder 项目中多出…

(NeRF学习)3D Gaussian Splatting Instant-NGP

学习参考: 3D Gaussian Splatting入门指南【五分钟学会渲染自己的NeRF模型,有手就行!】 三维重建instant-ngp环境部署与colmap、ffmpeg的脚本参数使用 一、3D Gaussian Splatting (一)3D Gaussian Splatting环境配置…

JVM 类的加载器的基本特征和作用

Java全能学习面试指南:https://javaxiaobear.cn 1、作用 类加载器是 JVM 执行类加载机制的前提 ClassLoader的作用: ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信…

【跨境营商】创新科技助力数码转型 增强大湾区企业核心竞争力

粤港澳大湾区作为国家的重点发展区域,坐拥丰富的资源及商机,企业积极推行数码化,务求在大湾区抢占先机。香港电讯商业客户业务董事总经理吴家隆表示,近年企业锐意加快数码化步伐,香港电讯以创新科技融入的数码方案&…

UE学习C++(1)创建actor

创建新C类 在 虚幻编辑器 中,点击 文件(File) 下拉菜单,然后选择 新建C类...(New C Class...) 命令: 此时将显示 选择父类(Choose Parent Class) 菜单。可以选择要扩展的…

Linux Component概述和高通V4l2驱动模型

1 Linux为什么要引入Component框架? 为了让subsystem按照一定顺序初始化设备才提出来的。 subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video …

电商类直播介绍

电商直播是一种购物方式,通过直播技术向消费者展示商品,并引导其进行购买。在法律上,电商直播属于商业广告活动,主播需要根据具体行为承担“广告代言人"“广告发布者"或“广告主"的责任。 电商直播的特点在于其更…

月薪6W!美团、网易等大厂急招HarmonyOS开发!

近期,多家互联网公司发布了多个和鸿蒙系统有关的岗位。 不仅如此,还与Windows等主流老牌操作系统并列,并且排在首位介绍。 此外,今日头条招聘Android开发工程师也提及岗位需要“负责今日头条 Android、鸿蒙系统等新技术方向调研…

Http协议与Tomcat

HTTP协议 HTTP协议(HyperText Transfer Protocol)即超文本传输协议 ,是TCP/IC网络体系结构应用层的一个客户端-服务端协议,是所有客户端,服务端数据传输的基石(数据传输规则) 特点 ⭐基于TCP协…

class059 建图、链式前向星、拓扑排序【算法】

class059 建图、链式前向星、拓扑排序【算法】 code1 建图 package class059;import java.util.ArrayList; import java.util.Arrays;public class Code01_CreateGraph {// 点的最大数量public static int MAXN 11;// 边的最大数量// 只有链式前向星方式建图需要这个数量// 注…

基于AT89C51单片机的秒表设计

1.设计任务 利用单片机AT89C51设计秒表,设计计时长度为9:59:59,超过该长度,报警。创新:设置重启;暂停;清零等按钮。最后10s时播放音乐提示。 本设计是采用AT89C51单片机为中心,利用其…

zabbix的自动发现和注册、proxy代理和SNMP监控

目录 一、zabbix自动发现与自动注册机制: 1、概念 2、zabbix 自动发现与自动注册的部署 二、zabbix的proxy代理功能: 1、工作流程 2、安装部署 三、zabbix-snmp 监控 1、概念 2、安装部署 四、总结: 一、zabbix自动发现与自动注册…

细讲结构体

结构体是一些值的集合,这些值就是成员变量,这些变量可以是不同类型的。 当我们存放一个学生的信息是,包括性别,姓名,学号,年龄等内容,这些值是不同类型的,这是我们就可以使用结构体来…

二叉树的层平均值[中等]

优质博文:IT-BLOG-CN 一、题目 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[3.00000,14.50000,1…