如何在测试/线上环境页面访问本地接口?

文章目录

  • 一、前言
  • 二、分析
  • 三、搭建
    • 1、搭建nginx,监听http请求转发
    • 2、监听https请求转发
  • 四、总结

一、前言

在工作中,开发完的接口,一般测试的话,基本是使用Postman,如果要到页面测试,就要发版进行测试,重启服务,时间挺久的,如果发现有bug,还要修改后再重新发版,效率很低,所以,能不能直接页面调用本地接口?这就有了这篇文章,下面和大家分析下怎么实现的

二、分析

页面请求后端接口,基本都是统一使用nginx反向代理,转发请求到相应的服务,所以,我们可以配置好nginx,转发请求到本地服务,这应该是走得通的,我们直接改测试环境的nginx?这肯定不行,改完之后,其它人使用测试环境,也调用到了我的本地服务,这直接影响到了所有人,所以,我们可以试着在本地安装一个nginx,然后请求直接到我们本地的nginx,再做一层转发,看看调回原来的nginx,还是调本地服务
反向代理:代理的是服务端,相对于在在Internet和服务端之间加上一个中间服务,拦截所有发给服务端的请求,然后再统一分发给代理的服务端

三、搭建

1、搭建nginx,监听http请求转发

首先下载个nginx,下载地址,下载后解压即可

在安装目录下的conf文件夹中,可以看到自带的配置文件nginx.conf,这里我们不改变原来默认的配置文件,只是做一个扩展,新建forlan.conf,内容如下:

server {listen 80;  # 监听端口号server_name forlan.com;  # 您的域名location / {proxy_pass https://blog.csdn.net/qq_36433289?type=blog;}
}

把我们新建的配置加入到默认配置nginx.conf中

http {include forlan.conf;
}

然后就可以启动nginx

#检查nginx是否配置正确
F:\nginx-1.24.0>nginx -t
nginx: the configuration file F:\nginx-1.24.0/conf/nginx.conf syntax is ok
nginx: configuration file F:\nginx-1.24.0/conf/nginx.conf test is successful#启动nginx
F:\nginx-1.24.0>start nginx#重新加载配置
F:\nginx-1.24.0>nginx -s reload

到这一步为止,只是在我们本地装好了nginx,但请求还是不会走到我们本地的nginx,还是走了测试环境的,所以还需要配置关键的1步,才能让指定域名的请求到本地
修改hosts文件,配置127.0.0.1 forlan.com
注:一般路径在我们电脑的C:\Windows\System32\drivers\etc

到这里,就配置好了,一旦forlan.com地址的http请求,就会请求到本地,具体可以自己验证下

2、监听https请求转发

如果需要监听https请求,就需要配置crt证书,具体安装生成过程如下:

安装OpenSSL,下载地址
按照以下步骤,生成crt证书:

# 生成密码key
openssl genrsa -aes256 -passout pass:123456 -out forlan.pass.key 2048# 生成key
openssl rsa -passin pass:123456 -in forlan.pass.key -out forlan.key# 生成证书请求文件(CSR)
openssl req -new -sha256 -key forlan.key -out forlan.csr# 生成自签名证书
openssl x509 -req -sha256 -days 3655 -in forlan.csr -signkey forlan.key -out forlan.crt

在这里插入图片描述
然后就在我们的forlan.conf配置上监听https请求的server即可,如下的ssl_certificate和ssl_certificate_key:

server {listen       443 ssl;server_name  forlan.com;ssl_certificate      forlan.crt;ssl_certificate_key  forlan.key;location / {proxy_pass https://blog.csdn.net/qq_36433289?type=blog;}
}

如果我们想要进一步扩展实现,把指定路径的请求转发到本地服务,非指定的请求还是转发到测试服务,具体可以配置如下:

server {listen       443 ssl;server_name  forlan.com;ssl_certificate      forlan.crt;ssl_certificate_key  forlan.key;location /study/xxx {proxy_pass http://localhost:8888/study/xxx;}location / {proxy_pass https://测试环境ip:443;}
}

按照以上配置后,具体的效果就是,当我们请求https://forlan.com/study/xxx,就会请求到本地服务,其它路径请求的话,经过本地的nginx,转发请求到原来的服务(测试环境)

四、总结

其实就是在本地安装一个nginx,然后配置好具体的代理路径,不需要走本地的,就转回给测试环境的nginx进行
在配置期间,遇到个情况,请求出现404错误,这很明显就是路径没找到,可能就是你转发到测试环境,但测试环境的nginx没干活或者无法识别,当初我这里就出现了这种情况,然后在请求头加上一些参数,就正常了,具体看每个公司的配置情况了

以上就是本文的全部内容了,分享到这,欢迎大家在评论区一起探讨~

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

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

相关文章

年中汇报季?——一文教会你如何进行数据分析

一、常见的数据分析报告类型 数据分析报告通常可以分为三类:日常分析报告、专题型分析报告和综合性分析报告。前两者是以数据结论建议的格式去撰写,综合性分析报告则是:行业环境调研(竞品类产品数据分析)自身产品数据…

Java:使用Opencv进行大图找小图

本文将介绍使用Java操作Opencv进行行大图找小图测试! 1、OpenCV简介 OpenCV是一个开源计算机视觉库,提供了丰富的图像处理和计算机规觉算法。它支持多种编程语言,包括Java本文将介绍如何在Java中使用OpenCV进行图像处理和计算机视觉任务。 …

自然语言处理(NLP)—— 信息提取与文档分类

1. 初识信息提取 1.1 信息提取的基本知识 1.1.1 信息提取的概念 信息提取(IE, Information Extraction)是自然语言处理(NLP)领域的一个重要分支,它专注于从文档或语料库中提取结构化信息。这与信息检索(I…

RabbitMQ怎么保证可靠性

RabbitMQ怎么保证可靠性 前言生产端问题解决方案代码验证 RabbitMQ问题消费端问题解决方案代码验证 总结 前言 RabbitMQ相信大家都非常熟悉了,今天咱们来聊聊怎么保证RabbitMQ的可靠性。 那什么时候会出现问题呢? 第一种是生产端出现的问题。我们向队…

MySQL-事务日志

事务的隔离性由 锁机制 实现 事务的原子性、一致性、隔离性 由事务的 redo日志 和 undo 日志来保证 redo log 称为 重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。undo log 称为 回滚日志,回滚行记录…

selenium自动化介绍

文章目录 一、selenium原理 安装二、selenium使用1.创建浏览器对象,访问网址2.消除警告提示3.不显示浏览器中受控制字样4.防检测5.设置延时5.1强制延时5.2隐式延时 6.设置浏览器窗口大小 三、案例实战:百度搜索四、iframe标签五、案例实战:Q…

第一周 数据结构与算法以及复杂度分析

数据结构与算法 算法定义 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 1.问题是明确的,包含清晰的输入和输出定义。 2.具有可行性,能够在有限步骤、时间和内存空间下完成。 3.…

【第五节】C++的多态性与虚函数

目录 前言 一、子类型 二、静态联编和动态联编 三、虚函数 四、纯虚函数和抽象类 五、虚析构函数 六、重载,重定义与重写的异同 前言 面向对象程序设计语言的三大核心特性是封装性、继承性和多态性。封装性奠定了基础,继承性是实现代码重用和扩展…

Linux内网中安装jdk1.8详细教程

本章教程,主要介绍如何在内网环境中配置JDK1.8环境变量 一、下载Linux版压缩包 下载地址:https://www.oracle.com/java/technologies/downloads/#java8 下载完成之后,通过XFTP等工具,将安装包上传到内网服务器 二、安装配置步骤 1、解压压缩包 tar -zxvf /usr/local/jdk-…

根据PDF模版填充数据并生成新的PDF

准备模版 使用 福昕高级PDF编辑器 (本人用的这个,其他的也行,能作模版就行)打开PDF文件点击 表单 选项,点击 文本域在需要填充数据的位置设计文本域设置 名称、提示名称相当于 属性名,提示就是提示&#x…

基于SSM的“基于Apriori算法的网络书城”的设计与实现(源码+数据库+文档)

基于SSM的“基于Apriori算法的网络书城”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 网站功能展示图 首页 商品分类 热销 新品 我的订单 个…

二位偏序,P3660 [USACO17FEB] Why Did the Cow Cross the Road III G

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 P3660 [USACO17FEB] Why Did the Cow Cross the Road III G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二、解题报告 1、思路分析 二维偏序问题 我们将坐标按照第一维排序 然后树状数组维护区间内的…

【深度学习】【STWave】时空图预测,车流量预测,Efficient Spectral Graph Attention Network

Spatio-Temporal meets Wavelet: Disentangled Traffic Flow Forecasting via Efficient Spectral Graph Attention Network 代码:https://github.com/LMissher/STWave 论文:https://arxiv.org/abs/2112.02740 帮助: https://docs.qq.com/s…

C++STL---vector模拟实现

通过上篇文章,我们知道vector的接口实际上和string是差不多的,但是他俩的内部结构却大不一样,vector内有三个成员变量:_start、_finish、_endofstorage: _start指向容器的头元素,_finish指向有效元素末尾的元素&#x…

Vue2 + Element UI 封装 Table 递归多层级列表头动态

1、在 components 中创建 HeaderTable 文件夹&#xff0c;在创建 ColumnItem.vue 和 index.vue。 如下&#xff1a; 2、index.vue 代码内容&#xff0c;如下&#xff1a; <template><div><el-table:data"dataTableData"style"width: 100%"…

OSM历史10年(2014-2024)全国数据下载(路网、建筑物、POI、水系、地表覆盖利用······)

点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 零、前沿 这次向大家介绍一下OSM&#xff08;OpenStreetMap&#xff09;十年历史数据&#xff08;2014—2014&#xff09;的下载方法。当然我们也下载好分享给大家&#xff…

JAVA web期末复习总结

C/S结构与B/S结构区别&#xff1a; 在C/S结构中&#xff0c;客户端通常是一个独立的应用程序&#xff0c;需要在用户的计算机上安装和运行。而在BS结构中&#xff0c;客户端是一个Web浏览器&#xff0c;用户只需要通过浏览器打开网页&#xff0c;不需要安装额外的应用程序。 C…

程序员上岸指南

如果你还在996&#xff0c;大小周&#xff0c;感觉身体被掏空&#xff0c;那么你可以看看下面这篇文章&#xff0c;我特意搜集了一些苦逼程序员的上岸教程。 人生真的就是做几道选择题&#xff0c;选错了&#xff0c;忙也是瞎忙。选对了&#xff0c;躺着都能赢。总的来说&#…

良心推荐:什么软件能够监控公司电脑,就这5款软件能监控公司电脑

用软件监控员工电脑在大多数国家是非法的&#xff0c;不过在中国&#xff0c;企业在办公场所安装监控设备以监控员工工作&#xff0c;在遵循一定限制和条件的前提下&#xff0c;是合法的。以下是一些符合这些条件&#xff0c;并且广泛被企业采用的员工电脑监控软件的良心推荐&a…

C++:儿童节快乐呀!

六一快乐&#xff01;~ 今天我来宣布一个 ——————Cookie Maker工作室成立了&#xff01;—————— 目前参与人数&#xff1a;7 人名列单&#xff1a; 真实姓名 联系方式以及用户名 ZINCFFO CSDN&#xff08;ZINCFFO&#xff09; &…