在apache中获取客户端ip

Getting client ip in apache

这是我的日志配置:

LogFormat "{\
\"time\":%{sec}t,\
\"clientip\":\"%{CLIENTIP}e\",\
\"status\":%>s,\
\"request_method\":\"%m\",\
\"jsessionid\":\"%{JSESSIONID}C\",\
\"uniqueid\":\"%{X-Unique-Id}i\",\
\"request_processing_time\":%D,\
\"sent_bytes\":%B,\
\"request_uri_query\":\"%q\",\
\"referer\":\"%{Referer}i\",\
\"request_uri_path\":\"%U\",\
\"virtual_host\":\"%{Host}i\",\
\"user_agent\":\"%{User-agent}i\",\
\"request_http_version\":\"%H\",\
\"node\":\"%{HOSTNAME}e\",\
\"x-forwarded-for\": \"%{X-Forwarded-For}i\"\
}" my_logs_json

我只需要从 x-forwarded-for 获取最左边的 ip 地址。有没有办法在 apache 中获取它? 我试过的是 Get correct IP 但它对我不起作用或者我做错了。

更新

我一直做错了。我需要按照获取正确的 IP post 中所述,在 LogFormat 中传递我在虚拟主机中设置的变量,而不是“%{X-Forwarded-For}i”。

我没有传递我在虚拟主机中设置的变量的名称,而是按原样保留“%{X-Forwarded-For}i”。添加变量名而不是这个,它解决了问题。