如何让nginx将HTTP_AUTHORIZATION标头传递给Apache

我们使用Nginx作为使用HTTP Auth的Apache服务器的反向代理。 出于某种原因,我无法将HTTP_AUTHORIZATION头信息传递给Apache,它似乎被Nginx过滤掉了。 因此,没有请求可以authentication。

请注意,基本身份validation是dynamic的,所以我不想在我的nginxconfiguration中对它进行硬编码。

我的nginxconfiguration是:

server { listen 80; server_name example.co.uk ; access_log /var/log/nginx/access.cdk-dev.tangentlabs.co.uk.log; gzip on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 120; location / { proxy_pass http://localhost:81/; } location ~* \.(jpg|png|gif|jpeg|js|css|mp3|wav|swf|mov|doc|xls|ppt|docx|pptx|xlsx|swf)$ { if (!-f $request_filename) { break; proxy_pass http://localhost:81; } root /var/www/example; } } 

任何人都知道这是为什么发生?

更新 – 事实certificate,这个问题是我原来的问题,我忽略了:mod_wsgi。 这里所讨论的网站是一个Django站点,事实certificate,Apache确实得到了通过的authvariables,但是mod_wsgi将它们过滤掉了。

决议是使用:

 WSGIPassAuthorization On 

有关详细信息,请参阅http://www.arnebrodowski.de/blog/508-Django,-mod_wsgi-and-HTTP-Authentication.html

我不确定这会工作,但尝试添加:

 proxy_pass_request_headers on; proxy_no_cache $cookie_nocache $arg_nocache$arg_comment; proxy_no_cache $http_pragma $http_authorization; proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment; proxy_cache_bypass $http_pragma $http_authorization; 

如果这不起作用,请尝试以下操作:

 proxy_set_header HTTP_AUTHORIZATION $http_authorization;