我正在为我的网站使用cloudflare。
我遇到的问题是,在nginx上启用realip模块后,所有CDN ip都替换为用户的realip。然后,当我检查nginx日志时,无法确定用户是通过CDN连接还是直接与服务器连接。
下面是我的配置:
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
...
real_ip_header X-Forwarded-For;
....
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
有什么办法可以同时保留realip和CDN IP?
答案 0 :(得分:1)
来自:Including the original visitor IP in your logs
您可以在
$http_cf_connecting_ip
指令中包含变量$http_x_forwarded_for
和log_format
。
如果您既要使用CDN IP,又要使用CF-Connecting-IP
,请不要使用real_ip_header
并将$http_cf_connection_ip
添加到您的log_format
:
log_format main '$remote_addr - $http_cf_connection_ip ...'