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

文章目录

  • 一、前言
  • 二、分析
  • 三、搭建
    • 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没干活或者无法识别,当初我这里就出现了这种情况,然后在请求头加上一些参数,就正常了,具体看每个公司的配置情况了

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5.29工效学-人因工程人机交互

对于工效学这门课,一直都感觉很有意思,是一个值得再认真一点的课。可惜上课的时候效率不高,有感兴趣的东西课后也没有自行去拓展开来,前面的课我感觉还讲了比较重要的东西,但是,全忘了呢(真的对…

8、资源操作 Resource

目录 8.1、Spring Resources概述补充:什么是 low-level 资源?1. 文件系统资源2. 类路径资源3. URL资源4. 内嵌资源5. InputStream资源6. ServletContext资源示例代码结论 8.2、Resource接口8.3、Resource的实现类8.3.1、UrlResource访问网络资源1&#x…

华为设备配置静态路由和默认路由

华为设备配置静态路由和默认路由 理论部分知识: 路由分为两个大类:静态路由-----动态路由 静态路由:手工指定,适用于小规模的网络应用场景,如果网络规模变大,这样的方式非常不适合而且容易出错。 语法&…

C#使用GDI对一个矩形进行任意角度旋转

C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…

初识C++ · 模拟实现list

目录 前言 1 push_back pop_back 2 迭代器类 2.1 ! 2.2 -- 2.3 * 3 Print_List 4 有关自定义类型 5 有关const迭代器 6 拷贝构造 赋值 析构 Insert erase 前言 有了string,vector的基础,我们模拟实现list还是比较容易的,这里同…

基于LQR控制算法的电磁减振控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于LQR控制算法的电磁减振控制系统simulink建模与仿真。仿真输出控制器的收敛曲线。 2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a 08_029m 4.系统原理…

XXE漏洞简介

目录 漏洞原理 漏洞危害 前置知识 XML简介 DTD简介 DTD的两种声明方式 实体 实体分类 内置实体(Built-inentities) 字符实体(Characterentities) 通用实体(Generalentities) 参数实体(Parameterentities) XXE漏洞…

算法每日一题(python,2024.05.24) day.6

题目来源(力扣. - 力扣(LeetCode),简单) 解题思路: 排序+双指针 先将两个数组进行排序,cursor1和cursor分别指向两个数组的首位,比较两个指针所指的值的大小&#xff0…

iotdb时序库在火电设备锅炉场景下的实践【原创文字,IoTDB社区可进行使用与传播】

一.概述 1.1 说明 本文章主要介绍iotdb数据库在电站锅炉工业场景下,对辅助智能分析与预警的使用介绍。 【原创文字,IoTDB社区可进行使用与传播】 1.2 项目背景 随着人工智能算法在电力领域的发展,以及燃煤锅炉设备精细化调整需求的增加&…

Java Apache Jaccard文本相似度匹配初体验

文章目录 前言一、文本相似度算法的选择二、常见的文本相似度算法介绍三、使用示例1、引入jar包2、方法示例3、Jaccard源码剖析4、Jaccard源码解释 写在最后 前言 产品今天提了个需求,大概是这样的,来,请看大屏幕。。。额。。。搞错了&#…

系统思考—思考快与慢

“膝反射思考做决策,你的公司能走多远?” 在快节奏的商业环境中,我们的大脑往往默认采用“快速直觉反应”模式来做决策,这种方式节省能量,属于我们认知的“系统一”。然而,仅依靠直觉反应,即所…

go中的指针详解

因为大一的时候c语言没学好,所以看到指针很心烦 ,后来速成了一遍go ,每每写道指针部分就开始遗忘 ,所以专门对指针部分做了此笔记 概念 在 Go 语言中,指针是一种变量类型,它存储的是另一个变量的内存地址。通过指针,你可以访问和修改它指向…

数据结构——经典链表OJ(二)

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

认识JAVA中的异常

目录: 一. 异常概念与体系结构 二. 异常的处理 三. 自定义异常类 一. 异常概念与体系结构: 1 异常的概念:在 Java 中,将程序执行过程中发生的 不正常行为 称为异常, 如:算数异常: ArithmeticException System.out.pri…

数据结构-堆(带图)详解

前言 本篇博客我们来仔细说一下二叉树顺序存储的堆的结构,我们来看看堆到底如何实现,以及所谓的堆排序到底是什么 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:数据结构_普通young man的博客-CSDN博客 若有问题 评…

Triton TensorRT-LLM

Deploy an AI Coding Assistant with NVIDIA TensorRT-LLM and NVIDIA Triton | NVIDIA Technical Blog 模型格式先转为FasterTransformer;再用TensorRT-LLM将其compile为TensorRT格式;然后可用TensorRT-LLM来跑推理(或者模型放到Triton Rep…

前端最新面试题(基础模块HTML/CSS/JS篇)

目录 一、HTML、HTTP、WEB综合问题 1 前端需要注意哪些SEO 2 img的title和alt有什么区别 3 HTTP的几种请求方法用途 4 从浏览器地址栏输入url到显示页面的步骤 5 如何进行网站性能优化 6 HTTP状态码及其含义 7 语义化的理解 8 介绍一下你对浏览器内核的理解? 9 html…

【数据挖掘】3σ原则识别数据中的异常值(附代码)

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

生态系统服务功能之碳储量

大家好,这期开始新生态系统服务功能即碳储量的计算,这部分较简单,下面让我们开始吧!!! 碳储量的计算公式 生态系统通过从大气中释放和吸收二氧化碳等温室气体来调节地球气候,而森林、 草原和沼…

论文作图之高压缩比导出PDF

笔者使用Adobe Illustrator 2023创建可编辑pdf图,按照默认的导出设置保存pdf文件时,得到的图存储很大。为了解决存储过大且还保留一定编辑功能的问题,作者实践出了一种导出pdf的设置方法。 首先在AI中点击文件->存储为,点击保…