爱跑步的蜗牛 2016-06-07 01:58 采纳率: 0%
浏览 2157

nginx proxy_redirect 无效

proxy_redirect http://A/ http://B/
在浏览器中重定向的request url还是A,并没有变成B

谢谢

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:21
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你看下这篇博客吧, 应该有用👉 :nginx proxy_redirect实现服务端重定向
    • 除此之外, 这篇博客: Nginx笔记——代理服务配置中的 16. proxy_redirect 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      该指令用于修改被代理服务器返回的响应头中的Location消息头和Refresh消息头。与proxy_pass指令配合使用。比如Nginx 服务器通过proxy_pass指令将客户端的请求地址重写为被代理服务器的地址,那么 Nginx服务器返回给客户端的响应头中Location消息头显示的地址就应该和客户端发起请求的地址相对应,而不是代理服务器直按返回的地址信息,否则就会出向题。该指令解决了这个向 题,可以把代理服务器返回的地址信息更改为需要的地址信息。其语法结构为:

      proxy_redirect redirect replacement;
      proxy_redirect default;
      proxy_redirect off;
      
      • redirect,匹配Locarion消息头的字符串,支持变量的使用和正则表达式。
      • replacement,用于替换redirect变量内容的字符串,支持变量的使用。
      1. 结构1,假设被代理服务器返回的啊应头中Location消息头为:
        Location: http://192.168.xx.xx:8080/proxy/
        该指令设置为:
      server {
             listen       80;
             server_name www.mydomain.com;
             location /proxy/ {
                  proxy_pass http://192.168.xx.xx:8080;
                  proxy_redirect http://192.168.xx.xx:8080/proxy/ http://www.mydomain.com/proxy/;
                  #或者使用/proxy/,这样就使用服务器的基本名称和端口,即使它来自非80端口
                  #proxy_redirect http://192.168.xx.xx:8080/proxy/ /proxy/;
             }
      }
      

      Nginx 服务器会将Location消息头的信息更改为:
      Location:http://www.mydomain.com/proxy/

      1. 结构2使用default,代表使用location块的uri变量作为replacement,并使用proxy_pass 变量作为 redirect。下面两段配置,它们的配置效果是等同的,都会Location消息头的信息更改为:
        Location:http://www.mydomain.com/one/
      #配置1
      location /one/ {
                  proxy_pass http://www.mydomain.com:8080/two/; 
                  proxy_redirect default;
      }
      #配置2
      location /one/ {
           proxy_pass http://www.mydomain.com:8080/two/;
           proxy_redirect http://www.mydomain.com/two/ /one/; 
      }
      
      1. 结构3可以将当前作用城下所有的proxy_redirect指令配置全部设置为无效。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)