我正在使用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;
}
}
}
知道如何实现这种逻辑吗?感谢。
答案 0 :(得分:1)
存在本机HttpCoreModule功能: 您可以通过以下方式检查任何标题是否存在/匹配:
location /blah {
if ( $http_x_auth_token ) {
// do something, allow
}
}
http://wiki.nginx.org/HttpCoreModule#.24http_HEADER
希望它会有所帮助:)