【问题标题】:how to log client real ip and also CDN ip?如何记录客户端真实 ip 和 CDN ip?
【发布时间】:2019-01-01 18:21:42
【问题描述】:

我正在为我的网站使用 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?

【问题讨论】:

    标签: nginx cdn cloudflare real-ip


    【解决方案1】:

    取自:Including the original visitor IP in your logs

    您可以在log_format 指令中包含变量$http_cf_connecting_ip 和$http_x_forwarded_for。

    如果您想要 CDN IP 和 CF-Connecting-IP,请不要使用 real_ip_header 并将 $http_cf_connecting_ip 添加到您的 log_format:

    log_format  main  '$remote_addr - $http_cf_connecting_ip ...'
    

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2021-01-23
      • 2020-05-22
      • 2016-12-05
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      相关资源
      最近更新 更多