nginx将REMOTE_USER传递给apache2

我运行一个nginx反向代理背后的apache2实例,nginx执行基本身份validation,apache2提供Nagios cgi脚本。

我能够将authentication的用户从nginx发送到apache(目前使用X-Forwarded-User头设置为$ remote_user) – 但是我很努力地让apache2识别这个头并在执行CGI脚本之前设置REMOTE_USER envvariables。

我相信mod_rewrite可能能够做到这一点,但我所看到的所有例子都与相反的场景有关,其中apache2发送REMOTE_USER下游到另一个后端服务器。

甚至有可能将apache中的REMOTE_USER设置为apache自己的mod_auth模块之外的东西?

你需要Apache的mod_setenvifSetEnvIf指令。

例如:

 SetEnvIf X-Forwarded-User (.*) REMOTE_USER=$1 

需要Apache 2.0.51或更高版本。 文档在这里 。