如何在nginx中查找某个头文件

时间:2013-11-27 23:39:17

标签: nginx

我正在使用nginx作为代理服务器来基本上提供图像文件,并将其他所有内容移交给端口9000上的另一台服务器。

我想要做的是,如果传入请求不包含特定标头(X-AUTH-TOKEN),则nginx返回HTTP 500错误代码,但仅当请求不是针对资源“/ register”或“/事件”。在这种情况下,他们需要直接进入9000端口。

这是我目前的配置:

http {

    sendfile on;

    upstream my-backend {
        server 127.0.0.1:9000;
    }

    # main ngingx server
    server {
        server_name localhost;

        location / {
            proxy_pass http://my-backend;
        }

        location /images/ {
            root /home/images;
        }
    }
}

知道如何实现这种逻辑吗?感谢。

1 个答案:

答案 0 :(得分:1)

存在本机HttpCoreModule功能: 您可以通过以下方式检查任何标题是否存在/匹配:

location /blah {
    if ( $http_x_auth_token ) {
        // do something, allow
    }
}

http://wiki.nginx.org/HttpCoreModule#.24http_HEADER

希望它会有所帮助:)