天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2506字,纯文字阅读大概需要4分钟。
内容图文
![天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip](/upload/InfoBanner/zyjiaocheng/1121/5343592c25864f988d7f7983957d8a50.jpg)
如何获取来访者的真实IP?
1、nginx需要安装http_realip_module模块
wget http://nginx.org/download/nginx-1.17.0.tar.gz tar zxvf nginx-1.17.0.tar.gz cd nginx-1.17.0 ./configure --user=www --group=www --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module make make install kill -USR2 `cat /path/server/nginx/logs/nginx.pid` kill -QUIT `cat /path/server/nginx/logs/ nginx.pid.oldbin`
2、编辑nginx配置文件
vi /path/server/nginx/conf/nginx.conf 在http或者server处,需要添加的配置字段和信息: set_real_ip_from 100.125.0.0/16; real_ip_header X-Forwarded-For;
添加配置字段如下所示
[root@web_server_01 conf.d]# cat default.conf server { listen 443 default ssl; server_name localhost; set_real_ip_from 100.125.0.0/16; real_ip_header X-Forwarded-For;
3、重启nginx
nginx -s reload
4、查看Nginx的访问日志,您可以获取真实的来访者IP。
四层服务
注意:针对四层(TCP协议)服务,需要配置TOA插件获取。需要配置TOA插件获取。
操作场景
ELB可以针对客户访问的业务为访问者提供个性化的管理策略,制定策略之前需要获取来访者的真实IP。TOA内核模块主要用来获取ELB转化过的访问者真实IP地址(仅支持IPv4),该插件安装在ELB后端服务器。
当客户需要在操作系统中编译TOA内核模块时,可参考本文档进行配置。
Linux内核版本为2.6.32和Linux内核版本为3.0以上的操作系统,在配置TOA内核模块的操作步骤上有所区别,具体操作请参照相应的操作步骤进行配置。
前提条件 编译内核模块开发环境需与当前内核版本开发环境一致。 确保虚拟机可以访问开放源。 如果是非root用户,需拥有sudo权限。 操作步骤 以下操作步骤是针对Linux内核版本为3.0以上的操作系统。 准备编译环境。 说明: 安装内核模块开发包的过程中,如果源里面找不到对应内核版本的安装包,需要自行去网上下载需要的安装包。 以下是不同Linux发行版本的操作说明,请根据环境选择对应的方案。 CentOS环境下的操作步骤。 执行如下命令,安装gcc编译器。 sudo yum install gcc 执行如下命令,安装make工具。 sudo yum install make 执行如下命令,安装内核模块开发包,开发包头文件与库的版本需要与内核版本一致。 sudo yum install kernel-devel-`uname -r` 说明: 如果自带源里没有对应的内核开发包,可以到如下地址中去下载对应的rpm包。 地址:https://mirror.netcologne.de/oracle-linux-repos/ol7_latest/getPackage/ 以3.10.0-693.11.1.el7.x86_64为例,下载后执行以下命令安装: rpm -ivh kernel-devel-3.10.0-693.11.1.el7.x86_64.rpm。
2、编译内核模块
编译内核模块 使用git工具,执行如下命令,下载TOA内核模块源代码。 git clone https://github.com/Huawei/TCP_option_address.git 说明: 如果未安装git工具,请进入以下链接下载TOA模块源代码。 https://github.com/Huawei/TCP_option_address 执行如下命令,进入源码目录,编译模块。 cd src make 编译过程未提示warning或者error,说明编译成功,检查当前目录下是否已经生成toa.ko文件。 说明: 如果报错提示“config_retpoline=y but not supported by the compiler, Compiler update recommended”,表明gcc版本过老,建议将gcc升级为较新版本 加载内核模块 执行如下命令,加载内核模块。 sudo insmod toa.ko 执行如下命令,验证模块加载情况,查看内核输出信息。 dmesg | grep TOA 若提示信息包含“TOA: toa loaded”,说明内核模块加载成功。 说明: CoreOS在容器中编译完内核模块后,需要将内核模块复制到宿主系统,然后在宿主系统中加载内核模块。由于编译内核模块的容器和宿主系统共享/lib/modules目录,可以在容器中将内核模块复制到该目录下,以供宿主系统使用。
推荐常用rpm包搜索网站:http://rpm.pbone.net/
这时候再次查看nginx日志,则可以正常获取到真实访问的ip地址
参考:https://support.huaweicloud.com/elb_faq/elb_faq_0090.html
原文:https://www.cnblogs.com/caidingyu/p/12101395.html
内容总结
以上是互联网集市为您收集整理的天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip全部内容,希望文章能够帮你解决天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。