Nginx反向代理之proxy_redirect指令的实现

 更新时间:2024年08月18日 11:03:28   作者:爱你三千遍斯塔克  
proxy_redirect指令是用来重置头信息中的"Location"和"Refresh"的值,本文就来详细的介绍一下如何使用,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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的功能

到此这篇关于Nginx反向代理之proxy_redirect指令的实现的文章就介绍到这了,更多相关Nginx proxy_redirect内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx如何配置x-forwarded-for头部

    nginx如何配置x-forwarded-for头部

    这篇文章主要介绍了nginx如何配置x-forwarded-for头部,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • nginx配置gzip压缩优化传输效率加快页面访问速度的问题

    nginx配置gzip压缩优化传输效率加快页面访问速度的问题

    本文介绍了如何在nginx服务器中配置gzip压缩,通过压缩HTTP响应内容,减少数据传输大小和响应时间,从而提升网站性能和访问速度,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Nginx+PHP8.0支持视频上传的项目实践

    Nginx+PHP8.0支持视频上传的项目实践

    在Ubuntu 20.04上配置Nginx和PHP 8.0以支持视频上传,介绍了调整Nginx和PHP的配置文件,增加上传文件大小限制,调整超时时间和缓冲区大小等相关配置,感兴趣的可以了解一下
    2025-02-02
  • Nginx生产环境平滑升级的实现

    Nginx生产环境平滑升级的实现

    本文主要介绍了Nginx生产环境平滑升级的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 解决nginx报错信息 client intended to send too large body: 1331696 bytes

    解决nginx报错信息 client intended to send too large body: 1331696

    这篇文章主要介绍了解决nginx报错 client intended to send too large body: 1331696 bytes的相关资料,需要的朋友可以参考下
    2017-02-02
  • Nginx反向代理和内容替换模块实现网页内容动态替换功能

    Nginx反向代理和内容替换模块实现网页内容动态替换功能

    Nginx是一款轻量级高性能服务器软件,虽然轻量,但功能非常强大,可用于提供WEB服务、反向代理、负载均衡、缓存服务、甚至可以通过添加一些模块搭建rtmp流媒体服务,最近碰到一个客户需求,需要用到nginx反向代理替换网页内容,贴出来跟大家交流,如有不足之处请指出
    2024-10-10
  • Nginx配置负载均衡时访问地址无法生效的解决方法

    Nginx配置负载均衡时访问地址无法生效的解决方法

    本文主要介绍了Nginx配置负载均衡时访问地址无法生效的解决方法,例如负载均衡策略的设置是否正确、是否存在拼写错误等,下面就来详细的介绍一下,感兴趣的可以了解一下
    2023-09-09
  • nginx下支持PATH_INFO的方法实例详解

    nginx下支持PATH_INFO的方法实例详解

    这篇文章主要介绍了nginx下支持PATH_INFO的方法,结合实例形式详细分析了nginx下使用PATH_INFO模式的具体方法与相关使用技巧,需要的朋友可以参考下
    2016-02-02
  • Nginx代理后HTTP头部丢失问题的解决方案

    Nginx代理后HTTP头部丢失问题的解决方案

    在日常开发和运维中,我们经常会使用 Nginx 作为反向代理服务器,将客户端的请求转发到后端服务,然而,在某些情况下,通过 Nginx 代理后,后端服务可能会丢失部分 HTTP 头部信息,所以本文给大家介绍了Nginx代理后HTTP头部丢失问题的解决方案,需要的朋友可以参考下
    2025-02-02
  • Nginx实现Nacos反向代理的项目实践

    Nginx实现Nacos反向代理的项目实践

    在日常的web网站部署中,经常会用到nginx反向代理,本文主要介绍了Nginx实现Nacos反向代理的项目实践,Nginx实现Nacos反向代理的项目实践
    2022-03-03

最新评论