如何在nginx中查找某个标头

如何在nginx中查找某个标头,nginx,Nginx,我使用nginx作为代理服务器,基本上为图像文件提供服务,并将所有其他内容移交给端口9000处的另一台服务器 我想做的是,如果传入的请求不包含特定的头(X-AUTH-TOKEN),但只有当请求不是针对资源“/register”或“/events”时,nginx才会返回HTTP 500错误代码。在这种情况下,他们需要直接前往9000端口 以下是我目前的配置: http { sendfile on; upstream my-backend { server 127

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

我想做的是,如果传入的请求不包含特定的头(X-AUTH-TOKEN),但只有当请求不是针对资源“/register”或“/events”时,nginx才会返回HTTP 500错误代码。在这种情况下,他们需要直接前往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;
        }
    }
}

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

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

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


希望它能有所帮助:)

我想这已经得到了回答,推荐的方法是使用。看看nginx bundle。@henrique,如果这个答案对你有用,请接受它。