美文网首页
nginx add_header 仅部分或一次生效的原因与解决办

nginx add_header 仅部分或一次生效的原因与解决办

作者: xuing | 来源:发表于2020-08-27 00:41 被阅读0次

    为了检测代理是否真的成功,并且判断是否为所谓的高匿名,我写了在nginx中做了如下的一个配置,添加头部字段,并返回客户端信息。

    真正测试代理的时候,发送的是head请求,通过header字段,判断是否真的去请求了,而不是随意给我返回个200(恩,是有这种坑货代理的)

    location /proxyTest {
        default_type text/plain;
        add_header 'Mutex' 'ProxyTest_Xuing';
        if ($http_x_forwarded_for != ""){
            add_header 'anonymous' 'no';
        }
        return 200 '$remote_addr - $remote_user [$time_local] $request "$status" $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';  
    }
    

    只要是学过程序的,读下来的话,都知道,我想要的是首先添加一个Mutex,如果http_x_forwarded_for 不为空的话,再添加一个anonymous
    离谱的是,添加了下一个,上一个就没有了。hhhh
    经过反复试验与资料查找(见参考链接),国外友人和我的情况比较类似,但我没想到是同样的原因。其实就是
    add_header仅生效在最近的一个{}当中。
    所以。。简单的办法就是if里面再写一遍add_header 'Mutex' 'ProxyTest_Xuing';

    嘛,一般人应该不会有这个问题。就写到这里了 hhhh

    参考链接:
    https://www.peterbe.com/plog/be-very-careful-with-your-add_header-in-nginx

    相关文章

      网友评论

          本文标题:nginx add_header 仅部分或一次生效的原因与解决办

          本文链接:https://www.haomeiwen.com/subject/ysuqsktx.html