使用 nginx 代理传递 remote_user
Proxy pass remote_user with nginx
我有一个防火墙,它是 SSL 终结器并设置了 remote_user header。这个 header 应该传递给应用程序,但是我们有一个 nginx 代理位于中间。
浏览器通过 SSL -> 防火墙代理 -> Nginx 代理 -> App
我一辈子都想不出如何将 remote_user header 从防火墙传递到应用程序。 Nginx 似乎吞下了它。 $remote_user 没有它(这是有道理的)。 $http_remote_user 没有它(这没有意义)。我试图在 $proxy_add_* 中找到它,但找不到。
当 SSL 终止符不是 nginx 时,如何代理传递 remote_user header?
EDIT1:我尝试过的其他事情:
proxy_pass_request_headers on;
proxy_pass_header remote_user;
proxy_set_header other_user $http_remote_user;
proxy_pass http://scooterlabs.com/echo;
您需要使用 proxy_pass_request_headers on
和 underscores_in_headers on
的组合,因为您的 header 包含下划线。
underscores_in_headers
需要放在您的 http 块中。
参见:http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
旧答案
您正在寻找proxy_pass_header
我有一个防火墙,它是 SSL 终结器并设置了 remote_user header。这个 header 应该传递给应用程序,但是我们有一个 nginx 代理位于中间。
浏览器通过 SSL -> 防火墙代理 -> Nginx 代理 -> App
我一辈子都想不出如何将 remote_user header 从防火墙传递到应用程序。 Nginx 似乎吞下了它。 $remote_user 没有它(这是有道理的)。 $http_remote_user 没有它(这没有意义)。我试图在 $proxy_add_* 中找到它,但找不到。
当 SSL 终止符不是 nginx 时,如何代理传递 remote_user header?
EDIT1:我尝试过的其他事情:
proxy_pass_request_headers on;
proxy_pass_header remote_user;
proxy_set_header other_user $http_remote_user;
proxy_pass http://scooterlabs.com/echo;
您需要使用 proxy_pass_request_headers on
和 underscores_in_headers on
的组合,因为您的 header 包含下划线。
underscores_in_headers
需要放在您的 http 块中。
参见:http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
旧答案
您正在寻找proxy_pass_header