Nginx配置请求头携带原始请求信息

发布时间:2023年12月17日

在这里插入图片描述

在浏览器向nginx发送请求时,nginx会将请求转发给SpringBoot,此时由于是nginx给SpringBoot发送的请求,所以SpringBoot获取到的请求IP是192.168.1.2,而并非是浏览器的192.168.1.1,如果想要获取原始的请求IP,应在nginx的配置文件加上以下配置。

 location / {
            proxy_pass http://hadoop101:8081;
	   proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;  
        proxy_set_header X-Forwarded-Host $host;  
        proxy_set_header X-Forwarded-Port $server_port;  
		proxy_set_header X-Forwarded-Uri $request_uri;  # 添加这一行来传递原始请求的URI 
        proxy_set_header X-Forwarded-Url $request_uri;  # 添加这一行来传递原始请求的URL
 }

nginx常用的内置变量还有

$scheme:当前请求的协议类型,如 “http” 或 “https”。
$http_host:当前请求的域名和端口号,例如 “example.com:80”。
$request_uri:当前请求的 URI。
$proxy_add_x_forwarded_for:如果请求是从代理服务器转发过来的,该变量会包含原始客户端的 IP 地址。
$remote_addr:原始客户端的 IP 地址。
$remote_user:原始客户端的认证用户名(如果已通过身份验证)。
$time_local:当前请求的时间,以本地时间格式表示。
$request:当前请求的行,包括请求方法、URI 和协议类型。
$status:当前请求的响应状态码。
$body_bytes_sent:已发送到客户端的字节数。
$http_referer:当前请求的来源页面 URL。
$http_user_agent:当前请求的用户代理字符串,表示客户端的浏览器信息。

文章来源:https://blog.csdn.net/qq_43750656/article/details/135051156
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。