百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Nginx反向代理之proxy_redirect指令

off999 2025-01-17 12:35 15 浏览 0 评论

proxy_redirect

该指令是用来重置头信息中的"Location"和"Refresh"的值。

语法:

proxy_redirect redirect replacement;
proxy_redirect default; 
proxy_redirect off;

默认值:

proxy_redirect default;

编写位置:它可以存储在http、server、location里面

现在客户端向代理服务器发送请求,代理服务器把这个请求转发到服务端

服务端,这里设置的是146服务器,代理服务器这里设置的是133的电脑

服务端[192.168.200.146](最终接收前端请求的那个)

server {
 listen  8081;
 server_name localhost;
 if (!-f $request_filename){
 return 302 http://192.168.200.146;
 }
 }

代理服务端[192.168.200.133]

 server {
 listen  8081;
 server_name localhost;
 location / {
 proxy_pass http://192.168.200.146:8081/;
 proxy_redirect http://192.168.200.146 
http://192.168.200.133;
 }
 }

先在146的服务器(最终接收前端请求的那个)进行相应的配置修改

第一步: 先使用vim ../conf/nginx.conf中

第二步:在8081端口下,配置location路径

第三步:检验语法,重载配置

第四步:这时通过192.168.200.146:8081能够看到页面了

第五步:找到代理服务器的位置,

第六步:在代理服务器的位置,添加server块,映射到146:8081端口的位置

访问133的路径,最终显示146的结果,说明他背后访问的是146的资源

但是这里却出现了一种情况,如果在访问

192.168.200.133:8081/abc.html,访问/后面,且目录下面没有对应的文件却出现了404 Not Found这样的错误,这时候在想,如果没有静态资源,我还想将页面展示出来

先到146服务器的位置(接收服务器最终数据的那台服务器)

来到146服务器的地方,打开配置文件

给他添加if判断条件,判断是否存在有该文件,如果没有,return,继续重载到页面,默认跳转到index.html页面,它会自行进行匹配

检验语法,重载配置

现在把abc访问刷新一次,访问的就是146的页面

为什么之前的abc变成了192.168s.200.146了呢?

利用curl -I xxxx可以查看具体的访问页面,访问最终结果爆出了302

出现302的原因是因为if访问条件不存在,出现了一个302重定向地址

应用常见是客户端只能知道代理服务器的地址,而代理服务器再能将请求转发到服务端

同时也存在了一个问题,客户端是不知道最终服务端的IP地址的,想要客户端知道代理服务器的地址,最后要用到proxy_redirect

该指令是用来重置头信息中的"Location"和"Refresh"的值,编写在代理服务器上,将客户端的指令发送给最终服务器

使用proxy_redirect的具体配置,打开配置资料,proxy_redirect怎样进行设置,有三种方式,编写的位置在http、server、location三大块当中

第一种方式,proxy_redirect redirect replacement;(redirect是location的值)replacement(是替换的值)

具体配置内容

检验语法,重载配置

再访问abc.html文件的时候,找不到静态资源,同时也根据了上文的配置跳转到133的服务器上了

最终跳转到146的映射文件,使用proxy_pass中

检验语法,重载配置

第一次访问abc.html页面,跳转失败,最终返回的是192.168.200.133页面,这里初步设置是因为缓存影响的,没有跳转

打开浏览器设置,将缓存给删除一下

缓存删除之后,访问abc.html页面,现在最终映射的内容,访问了146的地方了

现在location,已经成功的映射到了133的地址当中了

该指令的几组选项

proxy_redirect redirect replacement;

redirect:目标,Location的值
replacement:要替换的

proxy_redirect default;

default;
将location块的uri变量作为replacement,
将proxy_pass变量作为redirect进行替换

proxy_redirect off;

关闭proxy_redirect的功能

相关推荐

30s带你使用Python打包exe文件,并修改其图标

在Python中,我们可以使用PyInstaller或cx_Freeze等工具将Python脚本打包成可执行文件(.exe),并且能够修改生成的.exe文件的图标。使用PyInstaller...

Python一键打包为windows的exe文件,无需安装python环境即可执行

一、为什么要将Python打包为exe?在实际应用中,我们希望Python程序能在没有安装Python环境的电脑上直接运行。将Python代码打包为exe可执行文件,不仅能解决环境依赖问题,还便于程...

py2exe实现python文件打包为.exe可执行程序(上篇)

今天分享的内容为:python程序实现发送、读取邮件来控制电脑的关机与重启(作为py2exe打包成.exe可执行程序的基础文件)一、说明:本文介绍的是使用新浪邮箱作为例子进行讲解,代码实现如下:#c...

如何将python程序文件打包生成一个可执行文件(exe文件)

在开发Python程序后,有时我们希望将其打包成一个可执行的exe文件,方便在没有Python环境的计算机上运行。下面将详细介绍使用常见工具实现这一目标的方法。安装PyInstaller...

Python程序打包为EXE的全面指南:从入门到精通

引言在Python开发中,将程序打包成可执行文件(EXE)是分发应用程序的重要环节。通过打包,我们可以创建独立的可执行文件,让没有安装Python环境的用户也能运行我们的程序。本篇文章将详细介绍如何使...

10个你没有充分利用的令人惊叹的 Python 特性

Python的简单性和多功能性使其成为全球开发人员的最爱。每天有超过1000万开发者使用Python进行从网络开发、机器学习到网络脚本等各种开发,Python的功能非常强大。然而,我们中的...

编程语言可以用来做什么

1.web前端你每天浏览的网页,所看到的页面特效,均是由web前端工程师来实现的2.Java大型购物网站有关通信及网络企业大型企业级应用管理系统大型网游后台数据3.C++嵌入式三维游戏领域人工智能领域...

用Python进行机器学习(16)-内容总结

对于用Python进行机器学习的内容,到这里就要做一个阶段性总结啦,后续再写的文章就是关于深度学习的了,算是对该部分内容的进阶版。对于机器学习,我们主要介绍了五个方面的内容:第一个就是分类算法,主要包...

普通人如何利用python做自媒体赚收益

普通人利用Python做自媒体赚收益,最简单的方式是下载某些网站的视频,并利用剪影编辑视频,最后导出发布,每天可以制作个10几条,并设置好定时发布,每天如此坚持下去,一定会有所收获的...

AI能写什么做什么?这些技能已经颠覆你的认知!

在ChatGPT、文心一言等AI工具爆火的今天,人工智能早已不再是科幻电影里的概念,而是实实在在地渗透进我们的生活。**AI到底能写什么?能做什么?它的边界在哪里?**让我们一探究竟!---**1....

Python 3.14 新特性盘点,更新了些什么?

Python3.14.0稳定版将于2025年10月正式发布,目前已进入beta测试阶段。这意味着在往后的几个月里,3.14的新功能已冻结,不再合入新功能(除了修复问题和完善文档)。3...

每天一个Python库:sys模块的5个高频用法(建议收藏)

很多人学Python,一直卡在“写不了实用脚本”。其实,会用标准库,效率直接翻倍。今天分享的是:sys模块。这个模块虽然基础,但非常实用,下面是我亲测常用的5个功能1.获取命令行参数(自动化脚...

Python除了做爬虫抓数据还能做什么?其实还能监视和衡量网站性能

  借助这份对初学者友好的指南,您可以构建自己的自定义Python脚本来自动测量网站的关键速度和性能指标。  在过去的一个月中,Google宣布了许多通过关键速度和性能指标来衡量用户体验的方法。  巧...

python究竟可以用来做些什么

这里就不撰述python的一些像什么“高级语言”之类的比较常规的介绍了,还是老样子,说说一些比较常用的东西吧。python是什么python,一款可编程的开源软件,很多第三方库、框架也是开源的,比如强...

Python 实现 dubbo 协议接口自动化测试

前言python语言也可以实现对dubbo协议的接口进行调用与测试,可以使用python+hessian结合的方式,也可以使用python+telnet结合的方式模拟命令行的模式来实现对...

取消回复欢迎 发表评论: