在 Nginx 的访问日志中显示从 auth_request 检索到的远程用户

Display remote user retrieved from auth_request in access logs in Nginx

我在nginx中有如下配置:

    location /api/ {
        auth_request /auth/request/;

        auth_request_set $user $upstream_http_remote_user;
        proxy_set_header Remote-User $user;
      

        proxy_pass http://...;
    }

我正在设置 Remote-User 字段,所以我希望在访问日志中会出现该值,但只出现 -,表明该值不存在。在那里代理的服务器中,我可以访问 header Remote-User,所以我知道该值设置正确,但无法在访问日志中显示它。

我想访问日志可能是在授权请求之前生成的。

有没有办法通过这种配置获取访问日志中的 Remote-User

在你nginx.conf你应该有类似

的东西

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

用您的 $user 变量替换 $remote_user