- 论坛徽章:
- 0
|
问题:一台nginx的前端放了一个varnish作cache,但nginx的日志显示:$remote_addr 一直都是到varnish的内网IP,"$http_x_forwarded_for" 都是 “-”,无法获取用户真实来源IP。
用了各种方法,都无法解决这个问题。
配置:
varnish:
###########
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
###########
nginx配置
set_real_ip_from 127.0.0.1;
set_real_ip_from 172.17.10.0/24;
real_ip_header X-Real-IP;
real_ip_header X-Forward-For;
log_format main '$remote_addr - $http_x_real_ip - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
|
|