我在 nginx 反向代理后面运行一个 apache2 实例,其中 nginx 执行基本身份验证,而 apache2 提供 Nagios cgi 脚本。
我能够将经过身份验证的用户从 nginx 发送到 apache(当前使用设置为 $remote_user 的 X-Forwarded-User 标头) - 但我很难让 apache2 识别此标头并在执行 CGI 脚本之前设置 REMOTE_USER 环境变量。
我相信 mod_rewrite 可以做到这一点,但我见过的所有例子都与相反的场景有关,其中 apache2 正在将 REMOTE_USER 下游发送到另一个后端服务器。
是否有可能将 apache 中的 REMOTE_USER 设置为 apache 自己的 mod_auth 模块范围之外的内容?
答案1
您需要 Apachemod_setenvif
和SetEnvIf
指令。
例如:
SetEnvIf X-Forwarded-User (.*) REMOTE_USER=$1
需要 Apache 2.0.51 或更高版本。文档在这里。