zoukankan      html  css  js  c++  java
  • nginx *之 proxy_redirect

    proxy_redirect 该指令用来修改被代理服务器返回的响应头中的Location头域和“refresh”头域。

    语法结构为:

    proxy_redirect redirect replacement;
    proxy_redirect default;
    proxy_redirect off;

    错误示例:

    server {
        listen 80;
        server_name www.xxx.com;
        index  index.html;
    
        location /
        {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header host $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

      当请求的链接为 http://www.xxx.com/aming
      结果会返回301,定向到了 http://www.xxx.com:8080/aming/

      注意:返回301有几个先决条件
        1. location后面必须是/;
        2. proxy_pass后面的URL不能加uri,只能是IP或者IP:port结尾,并不能以/结尾;
        3. 访问的uri必须是一个真实存在的目录,如,这里的aming必须是存在的
        4. 访问的时候,不能以/结尾,只能是 www.xxx.com/aming

      虽然,这4个条件挺苛刻,但确实会遇到类似的请求。解决方法是,加一行proxy_redirect http://$host:8080/ /;

    正确示例: 

    server {
        listen 80;
        server_name www.xxx.com;
        index  index.html;
    
        location /
        {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header host $host;
        proxy_redirect http://$host:8080/ /;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
  • 相关阅读:
    胖虎都看得懂的CSS入门
    Python-ORM之sqlalchemy的简单使用
    类似fabric主机管理demo
    Redis 数据库学习
    sublime 3插件安装记录
    斐波那契数列—java实现
    mysql基础操作记录
    [转]修改github已提交的用户名和邮箱
    python nose的html报告优化
    python report中文显示乱码
  • 原文地址:https://www.cnblogs.com/yyxianren/p/10831614.html
Copyright © 2011-2022 走看看