nginx - nginx 从 x-forwarded 获取源客户端 ip 以使用 map 模块
问题描述
ip 有请求流过 3 个 nginx 代理,并且 ip 得到了 x-forwarded-for 列表 ip:
192.168.10.222, 192.168.10.178, 192.168.10.179
如何使用地图模块获取第一个 ip?我找到了这个但不能让它工作:
map $proxy_add_x_forwarded_for $client_ip {
"~(?<IP>([0-9]{1,3}\.){3}[0-9]{1,3}),.*" $IP;
}
从这里开始:https ://webkul.com/blog/x-forwarded-for-header-in-nginx- contains-mulitple-client-ips
谢谢
解决方案
这就是你要找的:
map $proxy_add_x_forwarded_for $client_ip {"~(?<IP>([0-9]{1,3}\.){3}[0-9]{1,3}),.*" $IP;}
它将 3 的第一个 ip 映射到变量 $client_ip。作为服务器和位置范围之外的一条线。
推荐阅读
- javascript - 通过日期从flutter - 在flutter中使用人脸认证时如何去除指纹图标?
- python - 按钮运行时Pyqt5 qlabel更新
- c# - Devexpress Checkbutton 蓝线边框 - 如何删除
- ubuntu - 为什么进入域时会显示我的 VPN 的 IP 地址?
- r - 删除ggplot的第一条和最后一条记录之间的连接线
- apache-kafka-connect - toketi-kafka-connect-iothub 已存档。有没有替代品
- android-studio - Gradle 构建运行了这么长时间
- json - 如何使用 ServiceStack 将 POCO 存储到具有复杂类型(对象和结构)的 MariaDB 以 JSON 形式存储?
- android - Android SDK 管理器 - Android R 和 S 预览版,Android 10.0+