$remote_user
在 HTTP 基本认证期间,$remote_user 变量包含客户端提供的用户名。 — NGINX Core (HTTP)
$remote_user
NGINX Core (HTTP)
说明
在 NGINX 中,当服务器配置为使用 HTTP 基本认证时,$remote_user 变量会被设置。这会在配置块中使用 `auth_basic` 指令时发生,提示客户端输入用户名和密码。客户端输入的用户名随后可供服务器使用,并可通过 $remote_user 变量访问。如果客户端未能成功认证,或请求不需要认证,则 $remote_user 将为空。 通常,$remote_user 变量用于日志记录或服务器配置中的授权目的。它可以包含在自定义日志格式中,使管理员能够追踪谁在访问某些资源。此外,该变量可以与条件性配置指令结合,影响访问控制决策,基于已认证用户的身份允许或拒绝访问。 该变量在安全至关重要的场景中最为有用,例如在公开需要用户识别以进行访问控制的敏感数据或服务时。然而,应注意这些信息可能具有敏感性,在日志中使用时应考虑隐私和安全实践,确保访问日志不会暴露可识别个人身份的信息。
配置示例
http {
server {
listen 80;
server_name example.com;
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
access_log /var/log/nginx/access.log combined;
# Include the remote_user in the log
log_format combined '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
}
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保在相关的上下文或 location 块中设置了 `auth_basic` 指令,否则 $remote_user 将始终为空。
⚠
注意记录敏感信息(例如用户名)时的安全影响。记录 $remote_user 时始终考虑隐私指南。
⚠
检查 `auth_basic_user_file` 中设置的路径,以防止对认证文件的未经授权访问。