haproxy转发真实IP给web

1.在haproxy.cfg中加入下面参数。

option forwardfor               #如果后端服务器需要获得客户端真实ip需要配置的参数,必须要放在listen模块下 

2.如果是apache,则加入下面参数(即修改)

LogFormat  “”%{X-Forwarded-For}i”%l %t "%r" %>s %b "%{Referer}i""%{User-Agent}i"" combined 主要是“”%{X-Forwarded-For}i 这个参数可以记录IP

这里我们可以写成这样方便切割日志 LogFormat  “%{X-Forwarded-For}i %l %t "%r" %>s %b "%{Referer}i""%{User-Agent}i"" combined 注意空格之类的,可以直接复制

3.如果是后端web是nginx则加入下面参数

set_real_ip_from ip;(这个ip填写的是proxy的ip)  

real_ip_header X-Forwarded-For;

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘                 

          ‘$status $body_bytes_sent “$http_referer” ‘                 

          ‘”$http_user_agent” “$http_x_forwarded_for”‘

=============================================  (后面日志路径也要定义main 和Apache一样,属于一种日志格式)

在log_format里添加$remote_addr或者$http_x_forwarded_for参数。

原文地址:https://www.cnblogs.com/shiyiwen/p/5032449.html