我在Nginx反向代理后面运行一个apache2实例,Nginx执行基本身份验证,apache2提供Nagios cgi脚本.
我能够将经过身份验证的用户从Nginx发送到apache(当前使用X-Forwarded-User标头设置为$remote_user) – 但我很难让apache2识别此标头并在执行CGI脚本之前设置REMOTE_USER env变量.
我相信mod_rewrite可能会这样做,但我看到的所有示例都与反向场景有关,其中apache2将REMOTE_USER下游发送到另一个后端服务器.
甚至可以将apache中的REMOTE_USER设置为apache自己的mod_auth模块之外的东西吗?
最佳答案
您需要Apache的mod_setenvif和SetEnvIf指令.
例如.:
SetEnvIf X-Forwarded-User (.*) REMOTE_USER=$1
需要Apache 2.0.51或更高版本. Docs here.