溫馨提示×

nginx日志中的X-Forwarded-For有何作用

小樊
65
2025-04-16 12:14:26
欄目: 編程語言

X-Forwarded-For 是一個 HTTP 頭部字段,用于記錄客戶端 IP 地址。在 Nginx 服務器中,它通常用于獲取客戶端的真實 IP 地址,特別是在使用了反向代理(如負載均衡器、CDN 或其他代理服務器)的情況下。

當請求經過多個代理服務器時,每個代理服務器都會在請求頭中添加自己的 IP 地址。X-Forwarded-For 字段會包含一個逗號分隔的 IP 地址列表,其中第一個 IP 地址是客戶端的真實 IP 地址,后續的 IP 地址則是經過的代理服務器的 IP 地址。

例如,當一個請求從客戶端發送到 Nginx 服務器,然后經過兩個代理服務器 A 和 B,最終到達 Nginx 服務器時,Nginx 日志中的 X-Forwarded-For 字段可能如下所示:

X-Forwarded-For: 192.168.1.1, 10.0.0.1, 172.16.0.1

在這個例子中,192.168.1.1 是客戶端的真實 IP 地址,10.0.0.1 是代理服務器 A 的 IP 地址,172.16.0.1 是代理服務器 B 的 IP 地址。

要正確記錄客戶端的真實 IP 地址,需要在 Nginx 配置文件中使用 $http_x_forwarded_for 變量。例如,可以將以下配置添加到 Nginx 配置文件中,以便在訪問日志中記錄客戶端的真實 IP 地址:

log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;

需要注意的是,X-Forwarded-For 頭部字段可以被偽造,因此不建議將其用于安全相關的場景。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女