一 指令学习
- 解读:表示这些是来自'代理服务器的ip [受信的]',不是用户的'真实ip'
-
- 大白话理解: 如果发现与nginx建连的是这些'受信ip',则可以通过特殊方式获取'client_ip';否则则'不处理'

- 细节点: 把set_real_ip_from xxx '放在server{}下','不要'放在location{}中
-
- 原因: realip工作在'find_config阶段之前'

- ++++++++++ 关于设置为'CIDR'场景的理解 ++++++++++
-
- 场景1:real_client --> '中间层' -> 'SNAT源地址转换' --> 替换为'CIDR地址池'中的'某个ip' --> 导致ip一直'发生变化',所以要'使用网段'
-
- 场景2:'CDN的ip'比较多,可以用'子网掩码',把一段ip设为'可信地址'的
- +++++++++++++"指令解读"+++++++++++++
-
- 1) 则是告诉'nginx' 从'哪里[重点]'获取真正的'client_ip'和'client_port'
-
- 2) 找到之后,然后替换'$remote_addr'和'$remote_port'

方式1: '自定义field'、'X-Real-IP'、'X-Forwarded-For' 请求头 -->'七层'

- 方式2: proxy_protocol -->'四层'
-
- ++++++++ "前置条件" ++++++++
-
- 目的: 通过在 'listen 指令'中设置 proxy_protocol 参数来'启用 PROXY 协议'
-
- listen 443 ssl proxy_protocol;
-
- listen 8443 proxy_protocol;
-
- 细节点: 在一个'server'块中,可以同时设置'多个'listen
- real_ip_recursive 是否'递归地排除'直至得到'用户ip'
-
- 1)off :会将 real_ip_header 指定的HTTP头中的'最后一个ip'作为真实ip
-
- 2)on :会将 real_ip_header 指定的HTTP头中的'最后一个不是信任服务器的ip'当成真实ip